librechat-data-provider 0.8.521 → 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.
- package/dist/{data-service-pwrlWjJs.mjs → data-service-Bx6IFaSa.mjs} +1770 -51
- package/dist/data-service-Bx6IFaSa.mjs.map +1 -0
- package/dist/{data-service-DOIF4BkW.js → data-service-CTX0tVO5.js} +2509 -112
- package/dist/data-service-CTX0tVO5.js.map +1 -0
- package/dist/index.js +1503 -54
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1314 -55
- 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 +58 -1
- package/dist/types/actions.d.ts +2 -2
- package/dist/types/agentToolOptions.d.ts +11 -0
- package/dist/types/api-endpoints.d.ts +24 -0
- package/dist/types/bedrock.d.ts +238 -10
- package/dist/types/cadence.d.ts +33 -0
- package/dist/types/code/approval.d.ts +26 -0
- package/dist/types/code/worker.d.ts +10 -0
- package/dist/types/code/workspace.d.ts +28 -0
- package/dist/types/codeEnvRef.d.ts +26 -0
- package/dist/types/config.d.ts +13180 -3021
- package/dist/types/data-service.d.ts +48 -2
- package/dist/types/errors.d.ts +2 -0
- package/dist/types/file-config.d.ts +138 -9
- package/dist/types/filters.d.ts +1422 -0
- package/dist/types/generate.d.ts +103 -1
- package/dist/types/index.d.ts +17 -0
- package/dist/types/keys.d.ts +33 -2
- package/dist/types/langchain.d.ts +4 -0
- package/dist/types/limits.d.ts +13 -0
- package/dist/types/mcp.d.ts +555 -460
- package/dist/types/messages.d.ts +24 -0
- package/dist/types/models.d.ts +1112 -319
- package/dist/types/parameterSettings.d.ts +13 -1
- package/dist/types/parsers.d.ts +10 -0
- package/dist/types/permissions.d.ts +42 -1
- package/dist/types/providers.d.ts +37 -0
- package/dist/types/request.d.ts +2 -2
- package/dist/types/resolve-llm-delivery-path.d.ts +68 -0
- package/dist/types/roles.d.ts +34 -0
- package/dist/types/runSteps.d.ts +59 -0
- package/dist/types/schemas.d.ts +1724 -248
- package/dist/types/stateful-code.d.ts +7 -0
- package/dist/types/svg.d.ts +34 -0
- package/dist/types/types/agents.d.ts +116 -7
- package/dist/types/types/assistants.d.ts +121 -6
- package/dist/types/types/files.d.ts +46 -2
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/insights.d.ts +71 -0
- package/dist/types/types/mutations.d.ts +1 -0
- package/dist/types/types/queries.d.ts +37 -2
- package/dist/types/types/queuedTurns.d.ts +870 -0
- package/dist/types/types/runs.d.ts +119 -9
- package/dist/types/types/schedules.d.ts +339 -0
- package/dist/types/types/skills.d.ts +9 -0
- package/dist/types/types/subagents.d.ts +159 -0
- package/dist/types/types/traces.d.ts +85 -0
- package/dist/types/types/web.d.ts +12 -2
- package/dist/types/types.d.ts +101 -1
- package/package.json +5 -3
- 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,304 @@ 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
|
|
353
|
+
//#region src/code/workspace.ts
|
|
354
|
+
const CODE_WORKSPACE_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;
|
|
355
|
+
/** Protocol-v1 ceiling enforced by the worker and Code API. */
|
|
356
|
+
const CODE_WORKSPACE_MAX_COUNT = 32;
|
|
357
|
+
/** API/client protocol for immutable conversation-owned environment decisions. */
|
|
358
|
+
const CODE_ENVIRONMENT_DECISION_VERSION = 1;
|
|
359
|
+
const CODE_WORKSPACE_OPERATIONS = [
|
|
360
|
+
"read_file",
|
|
361
|
+
"search_text",
|
|
362
|
+
"list_files",
|
|
363
|
+
"write_file",
|
|
364
|
+
"preview_edit",
|
|
365
|
+
"edit_file",
|
|
366
|
+
"execute_command"
|
|
367
|
+
];
|
|
368
|
+
const CODE_WORKSPACE_SELECTION_ERROR_REASONS = [
|
|
369
|
+
"required",
|
|
370
|
+
"invalid",
|
|
371
|
+
"worker_unavailable",
|
|
372
|
+
"unsupported",
|
|
373
|
+
"missing",
|
|
374
|
+
"locked"
|
|
375
|
+
];
|
|
376
|
+
const CODE_ENVIRONMENT_MODES = ["attached", "without_attached"];
|
|
377
|
+
function isCodeEnvironmentMode(value) {
|
|
378
|
+
return CODE_ENVIRONMENT_MODES.some((mode) => mode === value);
|
|
379
|
+
}
|
|
380
|
+
function isCodeWorkspaceSelectionErrorReason(value) {
|
|
381
|
+
return CODE_WORKSPACE_SELECTION_ERROR_REASONS.some((reason) => reason === value);
|
|
382
|
+
}
|
|
383
|
+
function isCodeWorkspaceSelection(value) {
|
|
384
|
+
if (value == null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
385
|
+
const selection = value;
|
|
386
|
+
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);
|
|
387
|
+
}
|
|
388
|
+
/** One exact workspace per attached environment used by a conversation. */
|
|
389
|
+
function isCodeWorkspaceSelections(value) {
|
|
390
|
+
if (!Array.isArray(value)) return false;
|
|
391
|
+
const environmentIds = /* @__PURE__ */ new Set();
|
|
392
|
+
return value.every((selection) => {
|
|
393
|
+
if (!isCodeWorkspaceSelection(selection) || environmentIds.has(selection.environmentId)) return false;
|
|
394
|
+
environmentIds.add(selection.environmentId);
|
|
395
|
+
return true;
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
//#endregion
|
|
100
399
|
//#region src/feedback.ts
|
|
101
400
|
const FEEDBACK_RATINGS = ["thumbsUp", "thumbsDown"];
|
|
102
401
|
const FEEDBACK_REASON_KEYS = [
|
|
@@ -206,6 +505,82 @@ function getTagByKey(key) {
|
|
|
206
505
|
return FEEDBACK_TAGS.find((tag) => tag.key === key);
|
|
207
506
|
}
|
|
208
507
|
//#endregion
|
|
508
|
+
//#region src/code/approval.ts
|
|
509
|
+
const CODE_APPROVAL_MODES = [
|
|
510
|
+
"ask",
|
|
511
|
+
"acceptEdits",
|
|
512
|
+
"fullAccess"
|
|
513
|
+
];
|
|
514
|
+
const MODE_PERMISSIONS = {
|
|
515
|
+
ask: {
|
|
516
|
+
fileWrite: "ask",
|
|
517
|
+
commandExecution: "ask"
|
|
518
|
+
},
|
|
519
|
+
acceptEdits: {
|
|
520
|
+
fileWrite: "allow",
|
|
521
|
+
commandExecution: "ask"
|
|
522
|
+
},
|
|
523
|
+
fullAccess: {
|
|
524
|
+
fileWrite: "allow",
|
|
525
|
+
commandExecution: "allow"
|
|
526
|
+
}
|
|
527
|
+
};
|
|
528
|
+
/** Omitted deployment configuration never grants unattended execution. */
|
|
529
|
+
function getAllowedCodeApprovalModes({ enabled, allowedModes, configSchema, settings, environment }) {
|
|
530
|
+
if (enabled === false) return [];
|
|
531
|
+
const permitted = new Set(allowedModes ?? ["ask"]);
|
|
532
|
+
return CODE_APPROVAL_MODES.filter((mode) => {
|
|
533
|
+
if (!permitted.has(mode)) return false;
|
|
534
|
+
if (environment === "managed") return true;
|
|
535
|
+
for (const category of ["fileWrite", "commandExecution"]) {
|
|
536
|
+
if (MODE_PERMISSIONS[mode][category] !== "allow") continue;
|
|
537
|
+
const field = configSchema?.permissions?.[category];
|
|
538
|
+
const configured = settings?.permissions?.[category];
|
|
539
|
+
if ((configured != null && field?.allowed.includes(configured) === true ? configured : field?.default ?? "ask") === "deny" || field?.allowed.includes("allow") !== true) return false;
|
|
540
|
+
}
|
|
541
|
+
return true;
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
var CodeApprovalModeError = class extends Error {
|
|
545
|
+
constructor() {
|
|
546
|
+
super("The selected code approval mode is not permitted by the current policy.");
|
|
547
|
+
this.code = "CODE_APPROVAL_MODE_NOT_ALLOWED";
|
|
548
|
+
this.name = "CodeApprovalModeError";
|
|
549
|
+
}
|
|
550
|
+
};
|
|
551
|
+
/** Validate untrusted request state again at admission, including after policy changes. */
|
|
552
|
+
function resolveCodeApprovalMode(requested, constraints) {
|
|
553
|
+
if (requested == null) return void 0;
|
|
554
|
+
const selected = getAllowedCodeApprovalModes(constraints).find((mode) => mode === requested);
|
|
555
|
+
if (selected == null) throw new CodeApprovalModeError();
|
|
556
|
+
return selected;
|
|
557
|
+
}
|
|
558
|
+
/** Apply a turn preference without modifying machine settings or overriding an existing deny. */
|
|
559
|
+
function resolveCodePermissionDecision({ mode, category, decision }) {
|
|
560
|
+
if (mode == null || decision === "deny") return decision;
|
|
561
|
+
if (MODE_PERMISSIONS[mode] == null) throw new CodeApprovalModeError();
|
|
562
|
+
return MODE_PERMISSIONS[mode][category];
|
|
563
|
+
}
|
|
564
|
+
//#endregion
|
|
565
|
+
//#region src/stateful-code.ts
|
|
566
|
+
const STATEFUL_CODE_ENVIRONMENTS = [
|
|
567
|
+
"user",
|
|
568
|
+
"agent-user",
|
|
569
|
+
"conversation"
|
|
570
|
+
];
|
|
571
|
+
/** Resolve a deployment allowlist in stable UI order. An omitted value preserves
|
|
572
|
+
* the backward-compatible behavior where every environment is available. */
|
|
573
|
+
function resolveAllowedStatefulCodeEnvironments(configured) {
|
|
574
|
+
if (configured == null) return [...STATEFUL_CODE_ENVIRONMENTS];
|
|
575
|
+
const configuredSet = new Set(configured);
|
|
576
|
+
return STATEFUL_CODE_ENVIRONMENTS.filter((environment) => configuredSet.has(environment));
|
|
577
|
+
}
|
|
578
|
+
/** Keep an allowed preference, otherwise select the first deployment-allowed scope. */
|
|
579
|
+
function resolveStatefulCodeEnvironment(preferred, configured) {
|
|
580
|
+
const allowed = resolveAllowedStatefulCodeEnvironments(configured);
|
|
581
|
+
return preferred != null && allowed.includes(preferred) ? preferred : allowed[0];
|
|
582
|
+
}
|
|
583
|
+
//#endregion
|
|
209
584
|
//#region src/types/assistants.ts
|
|
210
585
|
let Tools = /* @__PURE__ */ function(Tools) {
|
|
211
586
|
Tools["execute_code"] = "execute_code";
|
|
@@ -230,6 +605,10 @@ let EToolResources = /* @__PURE__ */ function(EToolResources) {
|
|
|
230
605
|
EToolResources["ocr"] = "ocr";
|
|
231
606
|
return EToolResources;
|
|
232
607
|
}({});
|
|
608
|
+
const agentGitIdentitySchema = zod.z.object({
|
|
609
|
+
name: zod.z.string().trim().min(1).max(128).refine((value) => !/[\0\r\n]/.test(value)),
|
|
610
|
+
email: zod.z.string().trim().email().max(254).refine((value) => !/[\0\r\n]/.test(value))
|
|
611
|
+
}).optional();
|
|
233
612
|
let AnnotationTypes = /* @__PURE__ */ function(AnnotationTypes) {
|
|
234
613
|
AnnotationTypes["FILE_CITATION"] = "file_citation";
|
|
235
614
|
AnnotationTypes["FILE_PATH"] = "file_path";
|
|
@@ -421,7 +800,35 @@ const inputTokensIncludesCache = (provider) => {
|
|
|
421
800
|
return cacheSubsetProviders.has(provider ?? "");
|
|
422
801
|
};
|
|
423
802
|
const isDocumentSupportedProvider = (provider) => {
|
|
424
|
-
|
|
803
|
+
const normalized = provider?.toLowerCase() ?? "";
|
|
804
|
+
return Array.from(documentSupportedProviders).some((candidate) => candidate.toLowerCase() === normalized);
|
|
805
|
+
};
|
|
806
|
+
/**
|
|
807
|
+
* Endpoints whose encoders actually build native audio/video payloads. Narrower than
|
|
808
|
+
* `documentSupportedProviders`: a provider can accept PDFs and still emit nothing for
|
|
809
|
+
* media, in which case the upload has to fall back to text/STT.
|
|
810
|
+
*/
|
|
811
|
+
const mediaSupportedProviders = new Set([
|
|
812
|
+
"google",
|
|
813
|
+
"vertexai",
|
|
814
|
+
"openrouter"
|
|
815
|
+
]);
|
|
816
|
+
const isMediaSupportedProvider = (provider) => {
|
|
817
|
+
return mediaSupportedProviders.has(provider?.toLowerCase() ?? "");
|
|
818
|
+
};
|
|
819
|
+
/**
|
|
820
|
+
* Built-in endpoint and provider identifiers. A name outside this set is a custom
|
|
821
|
+
* endpoint whose real provider is resolved at request time, so its capabilities
|
|
822
|
+
* cannot be judged from the name alone.
|
|
823
|
+
*/
|
|
824
|
+
const knownProviderIdentifiers = new Set([
|
|
825
|
+
...Object.values(EModelEndpoint),
|
|
826
|
+
...Object.values(Providers),
|
|
827
|
+
...Object.values(EModelEndpoint).map((provider) => provider.toLowerCase()),
|
|
828
|
+
...Object.values(Providers).map((provider) => provider.toLowerCase())
|
|
829
|
+
]);
|
|
830
|
+
const isKnownProviderIdentifier = (provider) => {
|
|
831
|
+
return knownProviderIdentifiers.has(provider?.toLowerCase() ?? "");
|
|
425
832
|
};
|
|
426
833
|
const paramEndpoints = new Set([
|
|
427
834
|
"agents",
|
|
@@ -622,6 +1029,9 @@ const defaultAgentFormValues = {
|
|
|
622
1029
|
["file_search"]: false,
|
|
623
1030
|
["web_search"]: false,
|
|
624
1031
|
["memory"]: false,
|
|
1032
|
+
stateful_code_environment: "user",
|
|
1033
|
+
code_environment_id: void 0,
|
|
1034
|
+
code_workspace_id: void 0,
|
|
625
1035
|
category: "general",
|
|
626
1036
|
support_contact: {
|
|
627
1037
|
name: "",
|
|
@@ -633,6 +1043,10 @@ const defaultAgentFormValues = {
|
|
|
633
1043
|
/** Master toggle for skill use on this agent. `true` activates skills
|
|
634
1044
|
* (full catalog unless `skills` narrows it). Anything else = inactive. */
|
|
635
1045
|
skills_enabled: void 0,
|
|
1046
|
+
/** Enables runtime skill creation without exposing an existing skill catalog. */
|
|
1047
|
+
skill_authoring_enabled: void 0,
|
|
1048
|
+
/** Explicit catalog scope. Missing preserves the legacy enabled + empty = all behavior. */
|
|
1049
|
+
skills_scope: void 0,
|
|
636
1050
|
/** `undefined` = feature disabled by default (no subagent tool injected). */
|
|
637
1051
|
subagents: void 0,
|
|
638
1052
|
/** Memory partition: 'agent' isolates memories per (user, agent); default shared pool */
|
|
@@ -650,6 +1064,8 @@ const ImageVisionTool = {
|
|
|
650
1064
|
}
|
|
651
1065
|
}
|
|
652
1066
|
};
|
|
1067
|
+
/** Structural on purpose: accepts assistants tools/tool calls and agents function tool
|
|
1068
|
+
* calls alike — the check only ever reads `type` and `function.name`. */
|
|
653
1069
|
const isImageVisionTool = (tool) => tool.type === "function" && tool.function?.name === ImageVisionTool.function?.name;
|
|
654
1070
|
const openAISettings = {
|
|
655
1071
|
model: { default: "gpt-4o-mini" },
|
|
@@ -708,8 +1124,45 @@ const getGoogleMaxOutputTokens = (modelName) => {
|
|
|
708
1124
|
}
|
|
709
1125
|
return GOOGLE_LEGACY_MAX_OUTPUT;
|
|
710
1126
|
};
|
|
1127
|
+
/**
|
|
1128
|
+
* Per-model thinking budget bounds, documented in
|
|
1129
|
+
* `com_endpoint_google_thinking_budget`: Gemini 2.5 Pro accepts 128-32,768,
|
|
1130
|
+
* Flash accepts 0-24,576, and Flash Lite accepts 512-24,576. The generic
|
|
1131
|
+
* 32,000 in the shared definition both under-limits Pro and lets invalid
|
|
1132
|
+
* Flash values through.
|
|
1133
|
+
*
|
|
1134
|
+
* `-1` remains the "decide automatically" sentinel and is not part of these
|
|
1135
|
+
* floors. Callers must keep `range.min` at -1 and apply `min` only to
|
|
1136
|
+
* non-negative values.
|
|
1137
|
+
*/
|
|
1138
|
+
const GOOGLE_THINKING_BUDGET_PRO_MAX = 32768;
|
|
1139
|
+
const GOOGLE_THINKING_BUDGET_FLASH_MAX = 24576;
|
|
1140
|
+
const GOOGLE_THINKING_BUDGET_PRO_MIN = 128;
|
|
1141
|
+
const GOOGLE_THINKING_BUDGET_FLASH_MIN = 0;
|
|
1142
|
+
const GOOGLE_THINKING_BUDGET_FLASH_LITE_MIN = 512;
|
|
1143
|
+
const getGoogleThinkingBudgetBounds = (modelName) => {
|
|
1144
|
+
if (!/gemini-2\.5/i.test(modelName)) return;
|
|
1145
|
+
if (/flash[-_.]?lite/i.test(modelName)) return {
|
|
1146
|
+
min: GOOGLE_THINKING_BUDGET_FLASH_LITE_MIN,
|
|
1147
|
+
max: GOOGLE_THINKING_BUDGET_FLASH_MAX
|
|
1148
|
+
};
|
|
1149
|
+
if (/flash/i.test(modelName)) return {
|
|
1150
|
+
min: GOOGLE_THINKING_BUDGET_FLASH_MIN,
|
|
1151
|
+
max: GOOGLE_THINKING_BUDGET_FLASH_MAX
|
|
1152
|
+
};
|
|
1153
|
+
if (/pro/i.test(modelName)) return {
|
|
1154
|
+
min: GOOGLE_THINKING_BUDGET_PRO_MIN,
|
|
1155
|
+
max: GOOGLE_THINKING_BUDGET_PRO_MAX
|
|
1156
|
+
};
|
|
1157
|
+
};
|
|
1158
|
+
const getGoogleThinkingBudgetMax = (modelName) => getGoogleThinkingBudgetBounds(modelName)?.max;
|
|
711
1159
|
const googleSettings = {
|
|
712
1160
|
model: { default: "gemini-1.5-flash-latest" },
|
|
1161
|
+
maxContextTokens: {
|
|
1162
|
+
min: 10,
|
|
1163
|
+
max: 2e6,
|
|
1164
|
+
step: 1e3
|
|
1165
|
+
},
|
|
713
1166
|
maxOutputTokens: {
|
|
714
1167
|
min: 1,
|
|
715
1168
|
max: GOOGLE_MAX_OUTPUT,
|
|
@@ -928,12 +1381,21 @@ const tPluginSchema = zod.z.object({
|
|
|
928
1381
|
authenticated: zod.z.boolean().optional(),
|
|
929
1382
|
chatMenu: zod.z.boolean().optional(),
|
|
930
1383
|
isButton: zod.z.boolean().optional(),
|
|
931
|
-
toolkit: zod.z.boolean().optional()
|
|
1384
|
+
toolkit: zod.z.boolean().optional(),
|
|
1385
|
+
/** Raw upstream tool name when the model-facing key stripped a redundant
|
|
1386
|
+
* server-name prefix — proves upstream identity for legacy id migration. */
|
|
1387
|
+
serverToolName: zod.z.string().optional()
|
|
932
1388
|
});
|
|
933
1389
|
const tExampleSchema = zod.z.object({
|
|
934
1390
|
input: zod.z.object({ content: zod.z.string() }),
|
|
935
1391
|
output: zod.z.object({ content: zod.z.string() })
|
|
936
1392
|
});
|
|
1393
|
+
/** Compact context-fading tier persisted beside a message's calibration ratio. */
|
|
1394
|
+
const agentFadingTierSchema = zod.z.object({
|
|
1395
|
+
v: zod.z.literal(1),
|
|
1396
|
+
budgetTokens: zod.z.number().positive(),
|
|
1397
|
+
masked: zod.z.boolean()
|
|
1398
|
+
});
|
|
937
1399
|
const tMessageSchema = zod.z.object({
|
|
938
1400
|
messageId: zod.z.string(),
|
|
939
1401
|
endpoint: zod.z.string().optional(),
|
|
@@ -950,6 +1412,12 @@ const tMessageSchema = zod.z.object({
|
|
|
950
1412
|
/** @deprecated */
|
|
951
1413
|
generation: zod.z.string().nullable().optional(),
|
|
952
1414
|
isCreatedByUser: zod.z.boolean(),
|
|
1415
|
+
/** True when the complete stored row came from outside the model. */
|
|
1416
|
+
isUserSubmitted: zod.z.boolean().optional(),
|
|
1417
|
+
/** JSON pointers to caller-authored fields in an otherwise mixed model response. */
|
|
1418
|
+
userSubmittedPaths: zod.z.array(zod.z.string().startsWith("/")).optional(),
|
|
1419
|
+
/** Exact HITL message-field identity for caller-authored values stored in mixed responses. */
|
|
1420
|
+
userSubmittedMessageFieldPaths: zod.z.array(userSubmittedMessageFieldPathSchema).optional(),
|
|
953
1421
|
isTemporary: zod.z.boolean().optional(),
|
|
954
1422
|
expiredAt: zod.z.string().nullable().optional(),
|
|
955
1423
|
error: zod.z.boolean().optional(),
|
|
@@ -969,7 +1437,9 @@ const tMessageSchema = zod.z.object({
|
|
|
969
1437
|
tokenCount: zod.z.number().optional(),
|
|
970
1438
|
contextMeta: zod.z.object({
|
|
971
1439
|
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\")")
|
|
1440
|
+
encoding: zod.z.string().optional().describe("Tokenizer encoding used when this ratio was computed (e.g. \"claude\", \"o200k_base\")"),
|
|
1441
|
+
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"),
|
|
1442
|
+
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
1443
|
}).optional(),
|
|
974
1444
|
/**
|
|
975
1445
|
* Skill names the user invoked manually via the `$` popover on this turn.
|
|
@@ -1007,6 +1477,19 @@ let MemoryScope = /* @__PURE__ */ function(MemoryScope) {
|
|
|
1007
1477
|
MemoryScope["agent"] = "agent";
|
|
1008
1478
|
return MemoryScope;
|
|
1009
1479
|
}({});
|
|
1480
|
+
/** Catalog exposure for a persisted agent with skills enabled. */
|
|
1481
|
+
let SkillsScope = /* @__PURE__ */ function(SkillsScope) {
|
|
1482
|
+
SkillsScope["all"] = "all";
|
|
1483
|
+
SkillsScope["selected"] = "selected";
|
|
1484
|
+
SkillsScope["none"] = "none";
|
|
1485
|
+
return SkillsScope;
|
|
1486
|
+
}({});
|
|
1487
|
+
/** Resolves explicit and legacy persisted-agent skill catalog states. */
|
|
1488
|
+
function resolveAgentSkillsScope(skills, enabled, scope) {
|
|
1489
|
+
if (enabled !== true) return "none";
|
|
1490
|
+
if (scope !== void 0) return scope;
|
|
1491
|
+
return (skills ?? []).length > 0 ? "selected" : "all";
|
|
1492
|
+
}
|
|
1010
1493
|
const coerceNumber = zod.z.union([zod.z.number(), zod.z.string()]).transform((val) => {
|
|
1011
1494
|
if (typeof val === "string") return val.trim() === "" ? void 0 : parseFloat(val);
|
|
1012
1495
|
return val;
|
|
@@ -1019,14 +1502,32 @@ const DocumentType = zod.z.lazy(() => zod.z.union([
|
|
|
1019
1502
|
zod.z.array(zod.z.lazy(() => DocumentType)),
|
|
1020
1503
|
zod.z.record(zod.z.lazy(() => DocumentType))
|
|
1021
1504
|
]));
|
|
1505
|
+
const subagentThreadLineageSchema = zod.z.object({
|
|
1506
|
+
rootConversationId: zod.z.string().min(1),
|
|
1507
|
+
parentConversationId: zod.z.string().min(1),
|
|
1508
|
+
parentMessageId: zod.z.string().min(1),
|
|
1509
|
+
parentToolCallId: zod.z.string().min(1),
|
|
1510
|
+
parentAgentId: zod.z.string().min(1).optional(),
|
|
1511
|
+
subagentType: zod.z.string().min(1),
|
|
1512
|
+
subagentKind: zod.z.enum(["agent", "graph"]),
|
|
1513
|
+
depth: zod.z.number().int().positive()
|
|
1514
|
+
});
|
|
1022
1515
|
const tConversationSchema = zod.z.object({
|
|
1023
1516
|
conversationId: zod.z.string().nullable(),
|
|
1024
1517
|
endpoint: eModelEndpointSchema.nullable(),
|
|
1025
1518
|
endpointType: eModelEndpointSchema.nullable().optional(),
|
|
1026
1519
|
isArchived: zod.z.boolean().optional(),
|
|
1520
|
+
/** When the chat was archived; absent on chats archived before this was recorded. */
|
|
1521
|
+
archivedAt: zod.z.string().nullable().optional(),
|
|
1027
1522
|
pinned: zod.z.boolean().optional(),
|
|
1028
1523
|
/** Server-derived: an active shared link exists for this conversation. Not persisted. */
|
|
1029
1524
|
isShared: zod.z.boolean().optional(),
|
|
1525
|
+
codeApprovalMode: zod.z.enum(CODE_APPROVAL_MODES).optional(),
|
|
1526
|
+
codeEnvironmentMode: zod.z.enum(CODE_ENVIRONMENT_MODES).optional(),
|
|
1527
|
+
codeWorkspaces: zod.z.array(zod.z.object({
|
|
1528
|
+
environmentId: zod.z.string().regex(CODE_WORKSPACE_ID_PATTERN),
|
|
1529
|
+
workspaceId: zod.z.string().regex(CODE_WORKSPACE_ID_PATTERN)
|
|
1530
|
+
}).strict()).optional(),
|
|
1030
1531
|
title: zod.z.string().nullable().or(zod.z.literal("New Chat")).default("New Chat"),
|
|
1031
1532
|
user: zod.z.string().optional(),
|
|
1032
1533
|
messages: zod.z.array(zod.z.string()).optional(),
|
|
@@ -1075,6 +1576,8 @@ const tConversationSchema = zod.z.object({
|
|
|
1075
1576
|
disableStreaming: zod.z.boolean().optional(),
|
|
1076
1577
|
assistant_id: zod.z.string().optional(),
|
|
1077
1578
|
agent_id: zod.z.string().optional(),
|
|
1579
|
+
/** Durable parent/child navigation for a subagent thread. */
|
|
1580
|
+
subagentThread: subagentThreadLineageSchema.optional(),
|
|
1078
1581
|
region: zod.z.string().optional(),
|
|
1079
1582
|
maxTokens: coerceNumber.optional(),
|
|
1080
1583
|
additionalModelRequestFields: DocumentType.optional(),
|
|
@@ -1230,6 +1733,26 @@ const tModelSpecPresetSchema = tPresetSchema.omit({
|
|
|
1230
1733
|
chatGptLabel: true,
|
|
1231
1734
|
presetOverride: true,
|
|
1232
1735
|
spec: true
|
|
1736
|
+
}).merge(zod.z.object({
|
|
1737
|
+
/**
|
|
1738
|
+
* Optional here, unlike `tPresetSchema`, where the key is required (though
|
|
1739
|
+
* nullable). A preset naming an `agent_id` has an unambiguous endpoint, so
|
|
1740
|
+
* config may omit it and `resolveModelSpecEndpoint` infers `agents` when
|
|
1741
|
+
* specs are materialized at config load.
|
|
1742
|
+
*/
|
|
1743
|
+
endpoint: extendedModelEndpointSchema.nullish() })).superRefine((preset, ctx) => {
|
|
1744
|
+
/**
|
|
1745
|
+
* Omission is only legal when the endpoint is inferable, which requires a
|
|
1746
|
+
* NON-EMPTY `agent_id` — form-backed writers persist untouched fields as
|
|
1747
|
+
* `''`, which names no agent. An explicit `endpoint: null` stays accepted:
|
|
1748
|
+
* it validated before the key became optional, so rejecting it now would
|
|
1749
|
+
* break previously valid configs.
|
|
1750
|
+
*/
|
|
1751
|
+
if (preset.endpoint === void 0 && !preset.agent_id) ctx.addIssue({
|
|
1752
|
+
code: zod.z.ZodIssueCode.custom,
|
|
1753
|
+
path: ["endpoint"],
|
|
1754
|
+
message: "endpoint is required unless the preset names a non-empty agent_id (the agents endpoint is then inferred)"
|
|
1755
|
+
});
|
|
1233
1756
|
});
|
|
1234
1757
|
const tSharedLinkSchema = zod.z.object({
|
|
1235
1758
|
conversationId: zod.z.string(),
|
|
@@ -1258,6 +1781,7 @@ const googleBaseSchema = tConversationSchema.pick({
|
|
|
1258
1781
|
examples: true,
|
|
1259
1782
|
temperature: true,
|
|
1260
1783
|
maxOutputTokens: true,
|
|
1784
|
+
resendFiles: true,
|
|
1261
1785
|
artifacts: true,
|
|
1262
1786
|
topP: true,
|
|
1263
1787
|
topK: true,
|
|
@@ -1516,15 +2040,39 @@ const requiredSettingFields = [
|
|
|
1516
2040
|
"type",
|
|
1517
2041
|
"component"
|
|
1518
2042
|
];
|
|
2043
|
+
function clampSettingRange(value, range) {
|
|
2044
|
+
if (range.positiveMin != null) {
|
|
2045
|
+
/** The minimum carries its own meaning here (Google's -1 for automatic),
|
|
2046
|
+
* and the schema admits it outright, so it survives rather than being
|
|
2047
|
+
* lifted to the floor. It need not be negative to be the sentinel. */
|
|
2048
|
+
if (value === range.min) return range.min;
|
|
2049
|
+
/** Below the sentinel there is nothing admissible to lift to, so the value
|
|
2050
|
+
* resolves to it. Between the sentinel and the floor, the floor is the
|
|
2051
|
+
* nearest value the generated schema accepts. */
|
|
2052
|
+
if (value < Math.max(range.min, 0)) return range.min;
|
|
2053
|
+
return Math.min(Math.max(value, range.positiveMin), range.max);
|
|
2054
|
+
}
|
|
2055
|
+
return Math.min(Math.max(value, range.min), range.max);
|
|
2056
|
+
}
|
|
1519
2057
|
function generateDynamicSchema(settings) {
|
|
1520
2058
|
const schemaFields = {};
|
|
1521
2059
|
for (const setting of settings) {
|
|
1522
2060
|
const { key, type, default: defaultValue, range, options, minText, maxText, minTags, maxTags } = setting;
|
|
1523
2061
|
if (type === "number") {
|
|
1524
|
-
let
|
|
2062
|
+
let numberSchema = zod.z.number();
|
|
1525
2063
|
if (range) {
|
|
1526
|
-
|
|
1527
|
-
|
|
2064
|
+
numberSchema = numberSchema.min(range.min);
|
|
2065
|
+
numberSchema = numberSchema.max(range.max);
|
|
2066
|
+
}
|
|
2067
|
+
/** Widened deliberately: refine returns ZodEffects, not ZodNumber, and
|
|
2068
|
+
* the number-specific chaining is already done above. */
|
|
2069
|
+
let schema = numberSchema;
|
|
2070
|
+
if (range?.positiveMin != null) {
|
|
2071
|
+
/** Mirrors clampSettingRange so the generated schema and the clamp
|
|
2072
|
+
* agree: `min` only admits the sentinel, and any non-negative value
|
|
2073
|
+
* must clear the documented floor. */
|
|
2074
|
+
const { positiveMin, min } = range;
|
|
2075
|
+
schema = numberSchema.refine((value) => value === min || value >= positiveMin, `Expected ${min} or a value of at least ${positiveMin}`);
|
|
1528
2076
|
}
|
|
1529
2077
|
if (typeof defaultValue === "number") schemaFields[key] = schema.default(defaultValue);
|
|
1530
2078
|
else schemaFields[key] = schema;
|
|
@@ -1666,7 +2214,14 @@ function validateSettingDefinitions(settings) {
|
|
|
1666
2214
|
setting.includeInput = setting.type === "number" ? setting.includeInput ?? true : false;
|
|
1667
2215
|
}
|
|
1668
2216
|
if (setting.component === "slider" && setting.type === "number") {
|
|
1669
|
-
if (setting.default === void 0 && setting.range)
|
|
2217
|
+
if (setting.default === void 0 && setting.range) {
|
|
2218
|
+
/** The midpoint of the admissible interval, which a positive floor
|
|
2219
|
+
* narrows: the span between the sentinel and that floor holds no value
|
|
2220
|
+
* the generated schema accepts, so a midpoint taken across it would
|
|
2221
|
+
* fail the validation below. */
|
|
2222
|
+
const floor = Math.max(setting.range.min, setting.range.positiveMin ?? setting.range.min);
|
|
2223
|
+
setting.default = Math.round((floor + setting.range.max) / 2);
|
|
2224
|
+
}
|
|
1670
2225
|
}
|
|
1671
2226
|
if (setting.component === "checkbox" || setting.component === "switch") {
|
|
1672
2227
|
if (setting.options && setting.options.length > 2) errors.push({
|
|
@@ -1744,6 +2299,16 @@ function validateSettingDefinitions(settings) {
|
|
|
1744
2299
|
message: `Invalid default value for setting ${setting.key}. Must be within the range [${setting.range.min}, ${setting.range.max}].`,
|
|
1745
2300
|
path: ["default"]
|
|
1746
2301
|
});
|
|
2302
|
+
if (setting.type === "number" && setting.range?.positiveMin != null && setting.range.positiveMin > setting.range.max) errors.push({
|
|
2303
|
+
code: zod.ZodIssueCode.custom,
|
|
2304
|
+
message: `Invalid range for setting ${setting.key}. positiveMin (${setting.range.positiveMin}) cannot exceed max (${setting.range.max}).`,
|
|
2305
|
+
path: ["range"]
|
|
2306
|
+
});
|
|
2307
|
+
if (setting.type === "number" && setting.range?.positiveMin != null && typeof setting.default === "number" && setting.default !== setting.range.min && setting.default < setting.range.positiveMin) errors.push({
|
|
2308
|
+
code: zod.ZodIssueCode.custom,
|
|
2309
|
+
message: `Invalid default value for setting ${setting.key}. Must be ${setting.range.min} or at least ${setting.range.positiveMin}.`,
|
|
2310
|
+
path: ["default"]
|
|
2311
|
+
});
|
|
1747
2312
|
if (setting.enumMappings && setting.type === "enum" && setting.options) {
|
|
1748
2313
|
for (const option of setting.options) if (!(option in setting.enumMappings)) errors.push({
|
|
1749
2314
|
code: zod.ZodIssueCode.custom,
|
|
@@ -1845,13 +2410,84 @@ const generateGoogleSchema = (customGoogle) => {
|
|
|
1845
2410
|
//#region src/limits.ts
|
|
1846
2411
|
/** Maximum number of explicit subagents per parent agent. UI + Zod schema share this. */
|
|
1847
2412
|
const MAX_SUBAGENTS = 10;
|
|
2413
|
+
/** Hard upper bound for `endpoints.agents.maxSubagents`, keeping the request-validation
|
|
2414
|
+
* cap bounded no matter what the config file says. */
|
|
2415
|
+
const MAX_SUBAGENTS_CEILING = 50;
|
|
2416
|
+
let maxSubagents = 10;
|
|
2417
|
+
/** Effective subagents-per-agent cap; initialized from `endpoints.agents.maxSubagents` at startup. */
|
|
2418
|
+
const getMaxSubagents = () => maxSubagents;
|
|
2419
|
+
/** Applies a configured cap; any missing or out-of-range value resets to the default. */
|
|
2420
|
+
const setMaxSubagents = (value) => {
|
|
2421
|
+
maxSubagents = typeof value === "number" && Number.isInteger(value) && value >= 1 && value <= 50 ? value : 10;
|
|
2422
|
+
};
|
|
2423
|
+
/** Chat project field limits. The dialogs and the persistence layer share these,
|
|
2424
|
+
* so the inputs stop at the same point the server would otherwise truncate. */
|
|
2425
|
+
const MAX_CHAT_PROJECT_NAME_LENGTH = 100;
|
|
2426
|
+
const MAX_CHAT_PROJECT_DESCRIPTION_LENGTH = 1e3;
|
|
2427
|
+
/** Mirrors the bounded graph-child member limit in `@librechat/agents`. */
|
|
2428
|
+
const MAX_GRAPH_SUBAGENT_MEMBERS = 32;
|
|
1848
2429
|
//#endregion
|
|
1849
2430
|
//#region src/models.ts
|
|
1850
2431
|
const modelSpecSubagentsSchema = zod.z.object({
|
|
1851
2432
|
enabled: zod.z.boolean().optional(),
|
|
1852
2433
|
allowSelf: zod.z.boolean().optional(),
|
|
1853
|
-
|
|
2434
|
+
shareFiles: zod.z.boolean().optional(),
|
|
2435
|
+
agent_ids: zod.z.array(zod.z.string()).optional()
|
|
2436
|
+
}).superRefine((subagents, ctx) => {
|
|
2437
|
+
const maxSubagents = getMaxSubagents();
|
|
2438
|
+
if ((subagents.agent_ids?.length ?? 0) > maxSubagents) ctx.addIssue({
|
|
2439
|
+
code: zod.z.ZodIssueCode.custom,
|
|
2440
|
+
path: ["agent_ids"],
|
|
2441
|
+
message: `agent_ids must contain at most ${maxSubagents} item(s)`
|
|
2442
|
+
});
|
|
1854
2443
|
});
|
|
2444
|
+
function resolveModelSpecEndpoint(modelSpec) {
|
|
2445
|
+
const preset = modelSpec?.preset;
|
|
2446
|
+
if (preset?.endpoint != null) return preset.endpoint;
|
|
2447
|
+
/**
|
|
2448
|
+
* An explicit `endpoint: null` is a statement, not an omission — such specs
|
|
2449
|
+
* validated (and were skipped downstream) before inference existed, so
|
|
2450
|
+
* inferring here would silently activate them. Only an absent key infers,
|
|
2451
|
+
* and only from a non-empty `agent_id`: form-backed writers persist
|
|
2452
|
+
* untouched fields as `''`, which names no agent.
|
|
2453
|
+
*/
|
|
2454
|
+
if (preset?.endpoint === null) return;
|
|
2455
|
+
return preset?.agent_id ? "agents" : void 0;
|
|
2456
|
+
}
|
|
2457
|
+
/**
|
|
2458
|
+
* Writes each spec's resolved endpoint back onto its preset so every consumer —
|
|
2459
|
+
* endpoint matching, the selector, access filters, startup presets, provider-key
|
|
2460
|
+
* reachability — reads a complete spec instead of re-deriving it. Apply once
|
|
2461
|
+
* where the effective config is assembled (YAML load and DB-override merge);
|
|
2462
|
+
* downstream code then needs no awareness of inference.
|
|
2463
|
+
*
|
|
2464
|
+
* Returns the original object, and the original spec objects, when nothing
|
|
2465
|
+
* needs filling in, so cached configs and memoized consumers see no new
|
|
2466
|
+
* identities.
|
|
2467
|
+
*/
|
|
2468
|
+
function materializeModelSpecEndpoints(modelSpecs) {
|
|
2469
|
+
const list = modelSpecs?.list;
|
|
2470
|
+
if (!list?.length) return modelSpecs;
|
|
2471
|
+
let changed = false;
|
|
2472
|
+
const materialized = list.map((spec) => {
|
|
2473
|
+
if (spec?.preset == null || spec.preset.endpoint != null) return spec;
|
|
2474
|
+
const endpoint = resolveModelSpecEndpoint(spec);
|
|
2475
|
+
if (endpoint == null) return spec;
|
|
2476
|
+
changed = true;
|
|
2477
|
+
return {
|
|
2478
|
+
...spec,
|
|
2479
|
+
preset: {
|
|
2480
|
+
...spec.preset,
|
|
2481
|
+
endpoint
|
|
2482
|
+
}
|
|
2483
|
+
};
|
|
2484
|
+
});
|
|
2485
|
+
if (!changed) return modelSpecs;
|
|
2486
|
+
return {
|
|
2487
|
+
...modelSpecs,
|
|
2488
|
+
list: materialized
|
|
2489
|
+
};
|
|
2490
|
+
}
|
|
1855
2491
|
const tModelSpecSchema = zod.z.object({
|
|
1856
2492
|
name: zod.z.string(),
|
|
1857
2493
|
label: zod.z.string(),
|
|
@@ -2077,6 +2713,49 @@ const bedrockDocumentFormats = {
|
|
|
2077
2713
|
"text/plain": "txt",
|
|
2078
2714
|
"text/markdown": "md"
|
|
2079
2715
|
};
|
|
2716
|
+
/**
|
|
2717
|
+
* Whether an upload belongs to the conversation rather than to the agent. The value
|
|
2718
|
+
* arrives from multipart form data, so it can be the string "false", which is truthy.
|
|
2719
|
+
* Shared so the route, the authorization check and processing cannot disagree about it.
|
|
2720
|
+
*/
|
|
2721
|
+
const isMessageFileUpload = (value) => value === true || value === "true";
|
|
2722
|
+
/**
|
|
2723
|
+
* Whether the upload's conversation uses the Responses API, which decides whether Azure
|
|
2724
|
+
* can carry a document natively. Multipart form data has no booleans, so it arrives as
|
|
2725
|
+
* the string "true".
|
|
2726
|
+
*/
|
|
2727
|
+
const isResponsesApiUpload = (value) => value === true || value === "true";
|
|
2728
|
+
/**
|
|
2729
|
+
* The name a file carries inside the code sandbox.
|
|
2730
|
+
*
|
|
2731
|
+
* Image uploads are converted to the configured output type while the record keeps the
|
|
2732
|
+
* original filename, so the extension has to follow the stored bytes or the sandbox
|
|
2733
|
+
* decoder is handed a mismatch. Provisioning and priming both resolve the mount path
|
|
2734
|
+
* from here: deriving it twice under different rules leaves a later turn advertising a
|
|
2735
|
+
* path that does not exist in the sandbox.
|
|
2736
|
+
*/
|
|
2737
|
+
const resolveSandboxFilename = (filename, mimeType) => {
|
|
2738
|
+
if (!mimeType?.startsWith("image/")) return filename;
|
|
2739
|
+
const subtype = mimeType.slice(6);
|
|
2740
|
+
if (![
|
|
2741
|
+
"webp",
|
|
2742
|
+
"png",
|
|
2743
|
+
"jpeg",
|
|
2744
|
+
"gif"
|
|
2745
|
+
].includes(subtype)) return filename;
|
|
2746
|
+
const accepted = subtype === "jpeg" ? [".jpg", ".jpeg"] : [`.${subtype}`];
|
|
2747
|
+
const lastDot = filename.lastIndexOf(".");
|
|
2748
|
+
const currentExt = lastDot > 0 ? filename.slice(lastDot).toLowerCase() : "";
|
|
2749
|
+
if (accepted.includes(currentExt)) return filename;
|
|
2750
|
+
return `${lastDot > 0 ? filename.slice(0, lastDot) : filename}${accepted[0]}`;
|
|
2751
|
+
};
|
|
2752
|
+
/**
|
|
2753
|
+
* The Responses setting a turn actually runs on. A saved agent's own record wins, since
|
|
2754
|
+
* execution reads its model parameters; a conversation only answers for itself. Upload
|
|
2755
|
+
* and delivery must agree here, or a document is stored as raw provider content and then
|
|
2756
|
+
* re-resolved to text it has no extraction for.
|
|
2757
|
+
*/
|
|
2758
|
+
const resolveUseResponsesApi = (agentValue, conversationValue) => agentValue ?? conversationValue ?? void 0;
|
|
2080
2759
|
const isBedrockDocumentType = (mimeType) => mimeType != null && mimeType in bedrockDocumentFormats;
|
|
2081
2760
|
/** MIME types Bedrock's Converse document path can send to the model (mirrors `bedrockDocumentFormats`). */
|
|
2082
2761
|
const bedrockDocumentMimeTypes = Object.keys(bedrockDocumentFormats);
|
|
@@ -2310,6 +2989,8 @@ const mbToBytes = (mb) => mb * megabyte;
|
|
|
2310
2989
|
const defaultSizeLimit = mbToBytes(512);
|
|
2311
2990
|
const defaultSkillImportSizeLimit = mbToBytes(50);
|
|
2312
2991
|
const defaultTokenLimit = 1e5;
|
|
2992
|
+
const defaultContextSizeLimit = mbToBytes(128);
|
|
2993
|
+
const defaultContextCharLimit = 1e6;
|
|
2313
2994
|
const assistantsFileConfig = {
|
|
2314
2995
|
fileLimit: 10,
|
|
2315
2996
|
fileSizeLimit: defaultSizeLimit,
|
|
@@ -2341,11 +3022,14 @@ const fileConfig = {
|
|
|
2341
3022
|
serverFileSizeLimit: defaultSizeLimit,
|
|
2342
3023
|
avatarSizeLimit: mbToBytes(2),
|
|
2343
3024
|
fileTokenLimit: defaultTokenLimit,
|
|
3025
|
+
fileContextSizeLimit: defaultContextSizeLimit,
|
|
3026
|
+
fileContextCharLimit: defaultContextCharLimit,
|
|
2344
3027
|
clientImageResize: {
|
|
2345
3028
|
enabled: false,
|
|
2346
3029
|
maxWidth: 1900,
|
|
2347
3030
|
maxHeight: 1900,
|
|
2348
|
-
quality: .92
|
|
3031
|
+
quality: .92,
|
|
3032
|
+
enforced: false
|
|
2349
3033
|
},
|
|
2350
3034
|
ocr: { supportedMimeTypes: defaultOCRMimeTypes },
|
|
2351
3035
|
text: { supportedMimeTypes: defaultTextMimeTypes },
|
|
@@ -2355,12 +3039,23 @@ const fileConfig = {
|
|
|
2355
3039
|
}
|
|
2356
3040
|
};
|
|
2357
3041
|
const supportedMimeTypesSchema = zod.z.array(zod.z.string()).optional();
|
|
3042
|
+
const DefaultLLMDeliveryPath = zod.z.enum([
|
|
3043
|
+
"provider",
|
|
3044
|
+
"text",
|
|
3045
|
+
"none"
|
|
3046
|
+
]);
|
|
3047
|
+
const defaultLLMDeliveryPathSchema = zod.z.object({
|
|
3048
|
+
fallback: DefaultLLMDeliveryPath.optional(),
|
|
3049
|
+
overrides: zod.z.record(DefaultLLMDeliveryPath).optional()
|
|
3050
|
+
});
|
|
2358
3051
|
const endpointFileConfigSchema = zod.z.object({
|
|
2359
3052
|
disabled: zod.z.boolean().optional(),
|
|
2360
3053
|
fileLimit: zod.z.number().min(0).optional(),
|
|
2361
3054
|
fileSizeLimit: zod.z.number().min(0).optional(),
|
|
2362
3055
|
totalSizeLimit: zod.z.number().min(0).optional(),
|
|
2363
|
-
supportedMimeTypes: supportedMimeTypesSchema.optional()
|
|
3056
|
+
supportedMimeTypes: supportedMimeTypesSchema.optional(),
|
|
3057
|
+
defaultLLMDeliveryPath: defaultLLMDeliveryPathSchema.optional(),
|
|
3058
|
+
legacyFileUploadUX: zod.z.boolean().optional()
|
|
2364
3059
|
});
|
|
2365
3060
|
const skillFileConfigSchema = zod.z.object({ fileSizeLimit: zod.z.number().min(0).optional() });
|
|
2366
3061
|
const fileConfigSchema = zod.z.object({
|
|
@@ -2369,18 +3064,23 @@ const fileConfigSchema = zod.z.object({
|
|
|
2369
3064
|
serverFileSizeLimit: zod.z.number().min(0).optional(),
|
|
2370
3065
|
avatarSizeLimit: zod.z.number().min(0).optional(),
|
|
2371
3066
|
fileTokenLimit: zod.z.number().min(0).optional(),
|
|
3067
|
+
fileContextSizeLimit: zod.z.number().min(0).optional(),
|
|
3068
|
+
fileContextCharLimit: zod.z.number().min(0).optional(),
|
|
3069
|
+
codeEnvLivenessSafeWindowMs: zod.z.number().min(0).optional(),
|
|
2372
3070
|
imageGeneration: zod.z.object({
|
|
2373
3071
|
percentage: zod.z.number().min(0).max(100).optional(),
|
|
2374
3072
|
px: zod.z.number().min(0).optional()
|
|
2375
3073
|
}).optional(),
|
|
2376
3074
|
clientImageResize: zod.z.object({
|
|
2377
3075
|
enabled: zod.z.boolean().optional(),
|
|
2378
|
-
maxWidth: zod.z.number().min(
|
|
2379
|
-
maxHeight: zod.z.number().min(
|
|
3076
|
+
maxWidth: zod.z.number().min(1).optional(),
|
|
3077
|
+
maxHeight: zod.z.number().min(1).optional(),
|
|
2380
3078
|
quality: zod.z.number().min(0).max(1).optional()
|
|
2381
3079
|
}).optional(),
|
|
2382
3080
|
ocr: zod.z.object({ supportedMimeTypes: supportedMimeTypesSchema.optional() }).optional(),
|
|
2383
|
-
text: zod.z.object({ supportedMimeTypes: supportedMimeTypesSchema.optional() }).optional()
|
|
3081
|
+
text: zod.z.object({ supportedMimeTypes: supportedMimeTypesSchema.optional() }).optional(),
|
|
3082
|
+
defaultLLMDeliveryPath: defaultLLMDeliveryPathSchema.optional(),
|
|
3083
|
+
legacyFileUploadUX: zod.z.boolean().optional()
|
|
2384
3084
|
});
|
|
2385
3085
|
/**
|
|
2386
3086
|
* Compiler for admin-supplied MIME patterns. Defaults to native `RegExp`, which browser
|
|
@@ -2516,6 +3216,12 @@ const documentMimeExtensions = [
|
|
|
2516
3216
|
["text/calendar", [".ics"]],
|
|
2517
3217
|
["message/rfc822", [".eml"]]
|
|
2518
3218
|
];
|
|
3219
|
+
/** Preferred extension for a known document MIME type, including its leading dot. */
|
|
3220
|
+
function getDocumentFileExtension(mimeType) {
|
|
3221
|
+
const normalized = mimeType?.split(";", 1)[0].trim().toLowerCase();
|
|
3222
|
+
const canonical = normalized === "text/comma-separated-values" ? "text/csv" : normalized;
|
|
3223
|
+
return documentMimeExtensions.find(([type]) => type === canonical)?.[1][0];
|
|
3224
|
+
}
|
|
2519
3225
|
const documentMimeSet = new Set(documentMimeExtensions.map(([mimeType]) => mimeType));
|
|
2520
3226
|
/** Every MIME type LibreChat may accept, used to detect patterns that reach beyond the representable set. */
|
|
2521
3227
|
const knownMimeUniverse = Array.from(new Set([
|
|
@@ -2609,7 +3315,45 @@ function mergeWithDefault(endpointConfig, defaultConfig, endpoint) {
|
|
|
2609
3315
|
fileLimit: endpointConfig.fileLimit ?? defaultConfig.fileLimit,
|
|
2610
3316
|
fileSizeLimit: endpointConfig.fileSizeLimit ?? defaultConfig.fileSizeLimit,
|
|
2611
3317
|
totalSizeLimit: endpointConfig.totalSizeLimit ?? defaultConfig.totalSizeLimit,
|
|
2612
|
-
supportedMimeTypes: endpointConfig.supportedMimeTypes ?? defaultMimeTypes
|
|
3318
|
+
supportedMimeTypes: endpointConfig.supportedMimeTypes ?? defaultMimeTypes,
|
|
3319
|
+
defaultLLMDeliveryPath: mergeDeliveryPathConfig(endpointConfig.defaultLLMDeliveryPath, defaultConfig.defaultLLMDeliveryPath),
|
|
3320
|
+
legacyFileUploadUX: endpointConfig.legacyFileUploadUX ?? defaultConfig.legacyFileUploadUX
|
|
3321
|
+
};
|
|
3322
|
+
}
|
|
3323
|
+
/**
|
|
3324
|
+
* Deep-merges delivery-path config so an endpoint that supplies only one override
|
|
3325
|
+
* still inherits the default's fallback and shared overrides. Whole-object
|
|
3326
|
+
* replacement would silently drop the inherited routing.
|
|
3327
|
+
*/
|
|
3328
|
+
function mergeDeliveryPathConfig(endpointValue, defaultValue) {
|
|
3329
|
+
if (!endpointValue) return defaultValue;
|
|
3330
|
+
if (!defaultValue) return endpointValue;
|
|
3331
|
+
if (endpointValue.fallback != null) return endpointValue;
|
|
3332
|
+
const hasOverrides = endpointValue.overrides != null || defaultValue.overrides != null;
|
|
3333
|
+
return {
|
|
3334
|
+
...defaultValue.fallback != null ? { fallback: defaultValue.fallback } : {},
|
|
3335
|
+
...hasOverrides ? { overrides: { ...shadowByWildcard(defaultValue.overrides, endpointValue.overrides) } } : {}
|
|
3336
|
+
};
|
|
3337
|
+
}
|
|
3338
|
+
/**
|
|
3339
|
+
* Flattens two override layers into one map that still resolves like the layered chain.
|
|
3340
|
+
* Resolution reads exact keys before wildcards, so a plain spread would let a lower
|
|
3341
|
+
* layer's `image/png` outrank the upper layer's `image/*`. Dropping the entries an
|
|
3342
|
+
* upper wildcard covers restores precedence without changing how lookups work.
|
|
3343
|
+
*/
|
|
3344
|
+
function shadowByWildcard(lower, upper) {
|
|
3345
|
+
if (!lower) return { ...upper };
|
|
3346
|
+
const upperWildcards = /* @__PURE__ */ new Set();
|
|
3347
|
+
for (const key in upper) if (key.endsWith("/*")) upperWildcards.add(key.slice(0, -1));
|
|
3348
|
+
if (upperWildcards.size === 0) return {
|
|
3349
|
+
...lower,
|
|
3350
|
+
...upper
|
|
3351
|
+
};
|
|
3352
|
+
const retained = {};
|
|
3353
|
+
for (const key in lower) if (!(!key.endsWith("/*") && upperWildcards.has(key.slice(0, key.indexOf("/") + 1)) && upper?.[key] == null)) retained[key] = lower[key];
|
|
3354
|
+
return {
|
|
3355
|
+
...retained,
|
|
3356
|
+
...upper
|
|
2613
3357
|
};
|
|
2614
3358
|
}
|
|
2615
3359
|
function getEndpointFileConfig(params) {
|
|
@@ -2617,8 +3361,13 @@ function getEndpointFileConfig(params) {
|
|
|
2617
3361
|
if (!mergedFileConfig?.endpoints) return fileConfig.endpoints.default;
|
|
2618
3362
|
/** Compute an effective default by merging user-configured default over the base default */
|
|
2619
3363
|
const baseDefaultConfig = fileConfig.endpoints.default;
|
|
3364
|
+
const globalDefaultConfig = {
|
|
3365
|
+
...baseDefaultConfig,
|
|
3366
|
+
defaultLLMDeliveryPath: mergeDeliveryPathConfig(mergedFileConfig.defaultLLMDeliveryPath, baseDefaultConfig.defaultLLMDeliveryPath),
|
|
3367
|
+
legacyFileUploadUX: mergedFileConfig.legacyFileUploadUX ?? baseDefaultConfig.legacyFileUploadUX
|
|
3368
|
+
};
|
|
2620
3369
|
const userDefaultConfig = mergedFileConfig.endpoints.default;
|
|
2621
|
-
const defaultConfig = userDefaultConfig ? mergeWithDefault(userDefaultConfig,
|
|
3370
|
+
const defaultConfig = userDefaultConfig ? mergeWithDefault(userDefaultConfig, globalDefaultConfig, "default") : globalDefaultConfig;
|
|
2622
3371
|
const normalizedEndpoint = normalizeEndpointName(endpoint ?? "");
|
|
2623
3372
|
const standardEndpoints = new Set([
|
|
2624
3373
|
"default",
|
|
@@ -2673,16 +3422,21 @@ function mergeFileConfig(dynamic) {
|
|
|
2673
3422
|
}
|
|
2674
3423
|
};
|
|
2675
3424
|
if (!dynamic) return mergedConfig;
|
|
3425
|
+
if (dynamic.defaultLLMDeliveryPath !== void 0) mergedConfig.defaultLLMDeliveryPath = dynamic.defaultLLMDeliveryPath;
|
|
3426
|
+
if (dynamic.legacyFileUploadUX !== void 0) mergedConfig.legacyFileUploadUX = dynamic.legacyFileUploadUX;
|
|
2676
3427
|
if (dynamic.serverFileSizeLimit !== void 0) mergedConfig.serverFileSizeLimit = mbToBytes(dynamic.serverFileSizeLimit);
|
|
2677
3428
|
if (dynamic.avatarSizeLimit !== void 0) mergedConfig.avatarSizeLimit = mbToBytes(dynamic.avatarSizeLimit);
|
|
2678
3429
|
if (dynamic.fileTokenLimit !== void 0) mergedConfig.fileTokenLimit = dynamic.fileTokenLimit;
|
|
3430
|
+
if (dynamic.fileContextSizeLimit !== void 0) mergedConfig.fileContextSizeLimit = mbToBytes(dynamic.fileContextSizeLimit);
|
|
3431
|
+
if (dynamic.fileContextCharLimit !== void 0) mergedConfig.fileContextCharLimit = dynamic.fileContextCharLimit;
|
|
2679
3432
|
if (dynamic.skills?.fileSizeLimit !== void 0) mergedConfig.skills = {
|
|
2680
3433
|
...mergedConfig.skills,
|
|
2681
3434
|
fileSizeLimit: mbToBytes(dynamic.skills.fileSizeLimit)
|
|
2682
3435
|
};
|
|
2683
3436
|
if (dynamic.clientImageResize !== void 0) mergedConfig.clientImageResize = {
|
|
2684
3437
|
...mergedConfig.clientImageResize,
|
|
2685
|
-
...dynamic.clientImageResize
|
|
3438
|
+
...dynamic.clientImageResize,
|
|
3439
|
+
enforced: dynamic.clientImageResize.enabled !== void 0
|
|
2686
3440
|
};
|
|
2687
3441
|
if (dynamic.ocr !== void 0) {
|
|
2688
3442
|
const { supportedMimeTypes: ocrMimeTypes, ...ocrRest } = dynamic.ocr;
|
|
@@ -2722,6 +3476,8 @@ function mergeFileConfig(dynamic) {
|
|
|
2722
3476
|
});
|
|
2723
3477
|
if (dynamicEndpoint.disabled !== void 0) mergedEndpoint.disabled = dynamicEndpoint.disabled;
|
|
2724
3478
|
if (dynamicEndpoint.supportedMimeTypes) mergedEndpoint.supportedMimeTypes = convertStringsToRegex(dynamicEndpoint.supportedMimeTypes);
|
|
3479
|
+
if (dynamicEndpoint.defaultLLMDeliveryPath !== void 0) mergedEndpoint.defaultLLMDeliveryPath = dynamicEndpoint.defaultLLMDeliveryPath;
|
|
3480
|
+
if (dynamicEndpoint.legacyFileUploadUX !== void 0) mergedEndpoint.legacyFileUploadUX = dynamicEndpoint.legacyFileUploadUX;
|
|
2725
3481
|
}
|
|
2726
3482
|
return mergedConfig;
|
|
2727
3483
|
}
|
|
@@ -2743,9 +3499,15 @@ const buildQuery = (params) => {
|
|
|
2743
3499
|
};
|
|
2744
3500
|
const health = () => `${BASE_URL}/health`;
|
|
2745
3501
|
const user = () => `${BASE_URL}/api/user`;
|
|
3502
|
+
const userPreferences = () => `${user()}/preferences`;
|
|
2746
3503
|
const balance = () => `${BASE_URL}/api/balance`;
|
|
2747
3504
|
const userPlugins = () => `${BASE_URL}/api/user/plugins`;
|
|
2748
3505
|
const deleteUser$1 = () => `${BASE_URL}/api/user/delete`;
|
|
3506
|
+
const codeEnvironments = () => `${BASE_URL}/api/code-environments`;
|
|
3507
|
+
const codeEnvironmentPairings = () => `${codeEnvironments()}/pairings`;
|
|
3508
|
+
const codeEnvironmentById = (id) => `${codeEnvironments()}/${encodeURIComponent(id)}`;
|
|
3509
|
+
const codeEnvironmentSettings = (id) => `${codeEnvironmentById(id)}/settings`;
|
|
3510
|
+
const codeEnvironmentStatus = (id) => `${codeEnvironmentById(id)}/status`;
|
|
2749
3511
|
const messagesRoot = `${BASE_URL}/api/messages`;
|
|
2750
3512
|
const messages = (params) => {
|
|
2751
3513
|
const { conversationId, messageId, ...rest } = params;
|
|
@@ -2786,9 +3548,17 @@ const conversations = (params) => {
|
|
|
2786
3548
|
return `${conversationsRoot}${buildQuery(params)}`;
|
|
2787
3549
|
};
|
|
2788
3550
|
const conversationById = (id) => `${conversationsRoot}/${id}`;
|
|
3551
|
+
const parentSubagents = (parentConversationId) => `${conversationsRoot}/${encodeURIComponent(parentConversationId)}/subagents`;
|
|
3552
|
+
const subagentThread = (parentConversationId, threadId, taskId, cursor) => {
|
|
3553
|
+
const endpoint = `${conversationsRoot}/${encodeURIComponent(parentConversationId)}/subagents/${encodeURIComponent(threadId)}`;
|
|
3554
|
+
if (taskId != null) return `${endpoint}?taskId=${encodeURIComponent(taskId)}`;
|
|
3555
|
+
return cursor == null ? endpoint : `${endpoint}?cursor=${encodeURIComponent(cursor)}`;
|
|
3556
|
+
};
|
|
3557
|
+
const subagentControl = (parentConversationId, threadId) => `${conversationsRoot}/${encodeURIComponent(parentConversationId)}/subagents/${encodeURIComponent(threadId)}/control`;
|
|
2789
3558
|
const genTitle$1 = (conversationId) => `${conversationsRoot}/gen_title/${encodeURIComponent(conversationId)}`;
|
|
2790
3559
|
const updateConversation$1 = () => `${conversationsRoot}/update`;
|
|
2791
3560
|
const archiveConversation$1 = () => `${conversationsRoot}/archive`;
|
|
3561
|
+
const archiveAllConversations$1 = () => `${conversationsRoot}/archive/all`;
|
|
2792
3562
|
const pinConversation$1 = () => `${conversationsRoot}/pin`;
|
|
2793
3563
|
const deleteConversation$1 = () => `${conversationsRoot}`;
|
|
2794
3564
|
const deleteAllConversation = () => `${conversationsRoot}/all`;
|
|
@@ -2873,6 +3643,14 @@ const agents = ({ path = "", options }) => {
|
|
|
2873
3643
|
return url;
|
|
2874
3644
|
};
|
|
2875
3645
|
const activeJobs = () => `${BASE_URL}/api/agents/chat/active`;
|
|
3646
|
+
const agentQueuedTurnsRoot = `${BASE_URL}/api/agents/chat/queued-turns`;
|
|
3647
|
+
const agentQueuedTurns = () => agentQueuedTurnsRoot;
|
|
3648
|
+
const agentQueuedTurnsByConversation = (conversationId, clientRequestIds = []) => {
|
|
3649
|
+
const uniqueIds = Array.from(new Set(clientRequestIds)).slice(0, 100);
|
|
3650
|
+
const knownIds = uniqueIds.length > 0 ? `&${uniqueIds.map((id) => `clientRequestIds=${encodeURIComponent(id)}`).join("&")}` : "";
|
|
3651
|
+
return `${agentQueuedTurnsRoot}?conversationId=${encodeURIComponent(conversationId)}${knownIds}`;
|
|
3652
|
+
};
|
|
3653
|
+
const agentQueuedTurn = (queuedTurnId) => `${agentQueuedTurnsRoot}/${encodeURIComponent(queuedTurnId)}`;
|
|
2876
3654
|
const mcp = {
|
|
2877
3655
|
tools: `${BASE_URL}/api/mcp/tools`,
|
|
2878
3656
|
servers: `${BASE_URL}/api/mcp/servers`
|
|
@@ -2926,6 +3704,9 @@ const deletePrompt$1 = ({ _id, groupId }) => {
|
|
|
2926
3704
|
};
|
|
2927
3705
|
const getCategories$1 = () => `${BASE_URL}/api/categories`;
|
|
2928
3706
|
const getAllPromptGroups$1 = () => `${prompts()}/all`;
|
|
3707
|
+
const schedules = () => `${BASE_URL}/api/schedules`;
|
|
3708
|
+
const schedule = (id) => `${schedules()}/${encodeURIComponent(id)}`;
|
|
3709
|
+
const runSchedule = (id) => `${schedule(id)}/run`;
|
|
2929
3710
|
const skills = () => `${BASE_URL}/api/skills`;
|
|
2930
3711
|
const importSkill$1 = () => `${skills()}/import`;
|
|
2931
3712
|
const getSkill$1 = (id) => `${skills()}/${encodeURIComponent(id)}`;
|
|
@@ -2939,6 +3720,15 @@ const listSkillsWithFilters = (filter) => {
|
|
|
2939
3720
|
};
|
|
2940
3721
|
const skillFiles = (id) => `${getSkill$1(id)}/files`;
|
|
2941
3722
|
const skillFile = (id, relativePath) => `${skillFiles(id)}/${encodeURIComponent(relativePath)}`;
|
|
3723
|
+
const insights = () => `${BASE_URL}/api/insights`;
|
|
3724
|
+
const insightsAccess = () => `${insights()}/access`;
|
|
3725
|
+
const conversationTrace = (conversationId) => `${BASE_URL}/api/traces/${encodeURIComponent(conversationId)}`;
|
|
3726
|
+
const conversationTraceAvailability = (conversationId) => `${conversationTrace(conversationId)}/availability`;
|
|
3727
|
+
const conversationTraceRecords = (conversationId, cursor) => `${conversationTrace(conversationId)}/records${cursor ? `?${new URLSearchParams({ cursor }).toString()}` : ""}`;
|
|
3728
|
+
const conversationTraceRecord = (conversationId, recordId, messageId, sourceId) => `${conversationTrace(conversationId)}/records/${encodeURIComponent(recordId)}?${new URLSearchParams({
|
|
3729
|
+
message: messageId,
|
|
3730
|
+
...sourceId ? { source: sourceId } : {}
|
|
3731
|
+
}).toString()}`;
|
|
2942
3732
|
const adminSkillsSync = () => `${BASE_URL}/api/admin/skills/sync`;
|
|
2943
3733
|
const adminSkillsSyncStatus = () => `${adminSkillsSync()}/status`;
|
|
2944
3734
|
const adminSkillsSyncRun = () => `${adminSkillsSync()}/run`;
|
|
@@ -2947,6 +3737,7 @@ const skillStates = () => `${BASE_URL}/api/user/settings/skills/active`;
|
|
|
2947
3737
|
const adminLangfuseConnection = () => `${BASE_URL}/api/admin/langfuse/connection`;
|
|
2948
3738
|
const adminLangfuseConnectionTest = () => `${adminLangfuseConnection()}/test`;
|
|
2949
3739
|
const adminLangfuseSessionLink = (conversationId) => `${adminLangfuseConnection()}/session/${encodeURIComponent(conversationId)}`;
|
|
3740
|
+
const pinnedOrder = () => `${BASE_URL}/api/user/settings/pinned-order`;
|
|
2950
3741
|
const toolFavorites = () => `${BASE_URL}/api/user/settings/favorites/tools`;
|
|
2951
3742
|
const toolFavorite = (itemType, itemId) => `${toolFavorites()}/${itemType}/${encodeURIComponent(itemId)}`;
|
|
2952
3743
|
const roles = () => `${BASE_URL}/api/roles`;
|
|
@@ -2974,6 +3765,7 @@ const regenerateBackupCodes$1 = () => `${BASE_URL}/api/auth/2fa/backup/regenerat
|
|
|
2974
3765
|
const verifyTwoFactorTemp$1 = () => `${BASE_URL}/api/auth/2fa/verify-temp`;
|
|
2975
3766
|
const memories = () => `${BASE_URL}/api/memories`;
|
|
2976
3767
|
const memory = (key, agentId) => `${memories()}/${encodeURIComponent(key)}${agentId ? `?agentId=${encodeURIComponent(agentId)}` : ""}`;
|
|
3768
|
+
const memoryById = (id, agentId) => `${memories()}/id/${encodeURIComponent(id)}${agentId ? `?agentId=${encodeURIComponent(agentId)}` : ""}`;
|
|
2977
3769
|
const memoryPreferences = () => `${memories()}/preferences`;
|
|
2978
3770
|
const searchPrincipals$1 = (params) => {
|
|
2979
3771
|
const { q: query, limit, types } = params;
|
|
@@ -3017,6 +3809,7 @@ let FileContext = /* @__PURE__ */ function(FileContext) {
|
|
|
3017
3809
|
FileContext["image_generation"] = "image_generation";
|
|
3018
3810
|
FileContext["assistants_output"] = "assistants_output";
|
|
3019
3811
|
FileContext["message_attachment"] = "message_attachment";
|
|
3812
|
+
FileContext["run_artifact"] = "run_artifact";
|
|
3020
3813
|
FileContext["skill_file"] = "skill_file";
|
|
3021
3814
|
FileContext["filename"] = "filename";
|
|
3022
3815
|
FileContext["updatedAt"] = "updatedAt";
|
|
@@ -3047,6 +3840,12 @@ let TokenExchangeMethodEnum = /* @__PURE__ */ function(TokenExchangeMethodEnum)
|
|
|
3047
3840
|
}({});
|
|
3048
3841
|
//#endregion
|
|
3049
3842
|
//#region src/mcp.ts
|
|
3843
|
+
/**
|
|
3844
|
+
* Upper bound on a stored MCP `iconPath` (URL or data URI). Enforced by
|
|
3845
|
+
* `sanitizeMcpIconPath`, not a schema `.max()`, so re-submitting a server whose
|
|
3846
|
+
* stored icon predates the cap clears the icon instead of rejecting the update.
|
|
3847
|
+
*/
|
|
3848
|
+
const MAX_MCP_ICON_PATH_LENGTH = 256 * 1024;
|
|
3050
3849
|
const validateOAuthClientCredentials = (oauth, ctx) => {
|
|
3051
3850
|
if (oauth.client_secret && !oauth.client_id) ctx.addIssue({
|
|
3052
3851
|
code: zod.z.ZodIssueCode.custom,
|
|
@@ -3151,9 +3950,11 @@ const UserOAuthOptionsSchema = OAuthOptionsBaseSchema.omit({
|
|
|
3151
3950
|
const OboOptionsSchema = zod.z.object({
|
|
3152
3951
|
/** Scopes to request for the downstream MCP server (e.g., "api://<client-id>/Mcp.Tools.ReadWrite") */
|
|
3153
3952
|
scopes: zod.z.string().min(1) });
|
|
3953
|
+
const MCP_SERVER_TITLE_PATTERN = /* @__PURE__ */ new RegExp("^[\\p{L}\\p{N}][\\p{L}\\p{N}\\p{M}'’ -]*$", "u");
|
|
3954
|
+
const MCP_SERVER_TITLE_ERROR = "Title must start with a letter or number and can include spaces, hyphens, and apostrophes";
|
|
3154
3955
|
const BaseOptionsSchema = zod.z.object({
|
|
3155
|
-
/** Display name for the MCP server
|
|
3156
|
-
title: zod.z.string().regex(
|
|
3956
|
+
/** Display name for the MCP server */
|
|
3957
|
+
title: zod.z.string().regex(MCP_SERVER_TITLE_PATTERN, MCP_SERVER_TITLE_ERROR).optional(),
|
|
3157
3958
|
/** Description of the MCP server */
|
|
3158
3959
|
description: zod.z.string().optional(),
|
|
3159
3960
|
/**
|
|
@@ -3168,7 +3969,14 @@ const BaseOptionsSchema = zod.z.object({
|
|
|
3168
3969
|
/** Timeout (ms) for the long-lived SSE GET stream body before undici aborts it. Default: 300_000 (5 min). */
|
|
3169
3970
|
sseReadTimeout: zod.z.number().int().positive().optional(),
|
|
3170
3971
|
initTimeout: zod.z.number().int().nonnegative().optional(),
|
|
3171
|
-
/**
|
|
3972
|
+
/**
|
|
3973
|
+
* Whether the server is offered in chat.
|
|
3974
|
+
*
|
|
3975
|
+
* `false` hides it from the chat dropdown (MCPSelect) AND bars it from the
|
|
3976
|
+
* chat selection a request carries, so a stale or hand-written request cannot
|
|
3977
|
+
* reach it either. It does not restrict agents, nor a server a model spec
|
|
3978
|
+
* pins through `mcpServers` — both are the operator's own choice.
|
|
3979
|
+
*/
|
|
3172
3980
|
chatMenu: zod.z.boolean().optional(),
|
|
3173
3981
|
/**
|
|
3174
3982
|
* Controls server instruction behavior:
|
|
@@ -3224,6 +4032,26 @@ const ProxyUrlSchema = zod.z.string().transform((val) => extractEnvVariable(val)
|
|
|
3224
4032
|
const protocol = new URL(val).protocol;
|
|
3225
4033
|
return protocol === "http:" || protocol === "https:" || protocol === "socks:" || protocol === "socks5:";
|
|
3226
4034
|
}, { message: "Proxy URL must use http://, https://, socks://, or socks5://" });
|
|
4035
|
+
const PROCESS_MCP_SERVER_FIELDS = new Set([
|
|
4036
|
+
"command",
|
|
4037
|
+
"args",
|
|
4038
|
+
"env",
|
|
4039
|
+
"cwd",
|
|
4040
|
+
"stderr"
|
|
4041
|
+
]);
|
|
4042
|
+
function isProcessMCPServerField(field) {
|
|
4043
|
+
return PROCESS_MCP_SERVER_FIELDS.has(field);
|
|
4044
|
+
}
|
|
4045
|
+
function isProcessMCPServerConfig(value) {
|
|
4046
|
+
if (value == null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
4047
|
+
const config = value;
|
|
4048
|
+
if (config.type === "stdio") return true;
|
|
4049
|
+
return Object.keys(config).some(isProcessMCPServerField);
|
|
4050
|
+
}
|
|
4051
|
+
function hasProcessMCPServerConfig(value) {
|
|
4052
|
+
if (value == null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
4053
|
+
return Object.values(value).some(isProcessMCPServerConfig);
|
|
4054
|
+
}
|
|
3227
4055
|
const StdioOptionsSchema = BaseOptionsSchema.extend({
|
|
3228
4056
|
type: zod.z.literal("stdio").default("stdio"),
|
|
3229
4057
|
obo: zod.z.undefined().optional(),
|
|
@@ -3396,7 +4224,7 @@ const defaultSocialLogins = [
|
|
|
3396
4224
|
"discord",
|
|
3397
4225
|
"saml"
|
|
3398
4226
|
];
|
|
3399
|
-
const BASE_ONLY_CONFIG_SECTIONS = [];
|
|
4227
|
+
const BASE_ONLY_CONFIG_SECTIONS = ["filters"];
|
|
3400
4228
|
/** Sections that may be stored in the tenant's base config document but must
|
|
3401
4229
|
* not be overridden or tombstoned by role, group, or user config documents. */
|
|
3402
4230
|
const BASE_PRINCIPAL_CONFIG_SECTIONS = ["langfuse"];
|
|
@@ -3424,6 +4252,14 @@ const defaultRetrievalModels = [
|
|
|
3424
4252
|
];
|
|
3425
4253
|
const excludedKeys = new Set([
|
|
3426
4254
|
"conversationId",
|
|
4255
|
+
"agentEventBinding",
|
|
4256
|
+
"agentEventActor",
|
|
4257
|
+
"agentEventActorCleanup",
|
|
4258
|
+
"agentEventActorSuspension",
|
|
4259
|
+
"agentEventActorReconciliations",
|
|
4260
|
+
"agentEventActorEpoch",
|
|
4261
|
+
"agentEventActorLegacyTurn",
|
|
4262
|
+
"subagentThread",
|
|
3427
4263
|
"title",
|
|
3428
4264
|
"iconURL",
|
|
3429
4265
|
"greeting",
|
|
@@ -3435,6 +4271,8 @@ const excludedKeys = new Set([
|
|
|
3435
4271
|
"isTemporary",
|
|
3436
4272
|
"messages",
|
|
3437
4273
|
"isArchived",
|
|
4274
|
+
"pinned",
|
|
4275
|
+
"archivedAt",
|
|
3438
4276
|
"tags",
|
|
3439
4277
|
"user",
|
|
3440
4278
|
"__v",
|
|
@@ -3824,6 +4662,22 @@ const baseEndpointSchema = zod.z.object({
|
|
|
3824
4662
|
activityPhasePrompt: zod.z.string().optional(),
|
|
3825
4663
|
/** Cost cap: maximum phase summaries generated per run. Default 5. */
|
|
3826
4664
|
activityPhaseMaxPerRun: zod.z.number().int().positive().optional(),
|
|
4665
|
+
/** Generates a live orientation label for sufficiently long top-level response reasoning. */
|
|
4666
|
+
reasoningLabel: zod.z.boolean().optional(),
|
|
4667
|
+
/** Model used for reasoning labels. Defaults to activityModel, titleModel, then run model. */
|
|
4668
|
+
reasoningLabelModel: zod.z.string().optional(),
|
|
4669
|
+
/** Endpoint receiving the bounded visible-reasoning snapshot. Defaults to activityEndpoint. */
|
|
4670
|
+
reasoningLabelEndpoint: zod.z.string().optional(),
|
|
4671
|
+
/** Overrides the dedicated reasoning-label system prompt. */
|
|
4672
|
+
reasoningLabelPrompt: zod.z.string().optional(),
|
|
4673
|
+
/** Characters required before the first reasoning label. Default 500. */
|
|
4674
|
+
reasoningLabelMinChars: zod.z.number().int().positive().optional(),
|
|
4675
|
+
/** New characters required between streaming revisions. Default 400. */
|
|
4676
|
+
reasoningLabelUpdateChars: zod.z.number().int().positive().optional(),
|
|
4677
|
+
/** Minimum milliseconds between streaming revisions. Default 3000. */
|
|
4678
|
+
reasoningLabelUpdateIntervalMs: zod.z.number().int().nonnegative().optional(),
|
|
4679
|
+
/** Cost cap: maximum reasoning-label provider calls attempted per run. Default 8. */
|
|
4680
|
+
reasoningLabelMaxPerRun: zod.z.number().int().positive().optional(),
|
|
3827
4681
|
/** Maximum characters allowed in a single tool result before truncation. */
|
|
3828
4682
|
maxToolResultChars: zod.z.number().positive().optional()
|
|
3829
4683
|
});
|
|
@@ -3910,13 +4764,13 @@ function isRemoteOidcUrlAllowed(value) {
|
|
|
3910
4764
|
}
|
|
3911
4765
|
const remoteApiOidcUrlSchema = zod.z.string().url().refine(isRemoteOidcUrlAllowed, { message: "must use https:// unless targeting localhost" });
|
|
3912
4766
|
const remoteApiOidcScopeSchema = zod.z.string().refine((scope) => !scope.includes(","), { message: "scopes must be space-separated" });
|
|
3913
|
-
const
|
|
4767
|
+
const oidcAccessTokenSchema = zod.z.object({
|
|
3914
4768
|
enabled: zod.z.boolean().default(false),
|
|
3915
4769
|
issuer: remoteApiOidcUrlSchema.optional(),
|
|
3916
4770
|
audience: zod.z.string().min(1).optional(),
|
|
3917
|
-
jwksUri: remoteApiOidcUrlSchema.optional()
|
|
3918
|
-
|
|
3919
|
-
|
|
4771
|
+
jwksUri: remoteApiOidcUrlSchema.optional()
|
|
4772
|
+
});
|
|
4773
|
+
function validateEnabledOidc(oidc, ctx) {
|
|
3920
4774
|
if (oidc.enabled === true && !oidc.issuer) ctx.addIssue({
|
|
3921
4775
|
code: zod.z.ZodIssueCode.custom,
|
|
3922
4776
|
path: ["issuer"],
|
|
@@ -3927,12 +4781,46 @@ const remoteApiOidcSchema = zod.z.object({
|
|
|
3927
4781
|
path: ["audience"],
|
|
3928
4782
|
message: "audience is required when OIDC auth is enabled"
|
|
3929
4783
|
});
|
|
3930
|
-
}
|
|
4784
|
+
}
|
|
4785
|
+
const remoteApiOidcSchema = oidcAccessTokenSchema.extend({ scope: remoteApiOidcScopeSchema.optional() }).superRefine(validateEnabledOidc);
|
|
3931
4786
|
const remoteApiAuthSchema = zod.z.object({
|
|
3932
4787
|
apiKey: zod.z.object({ enabled: zod.z.boolean().default(true) }).optional(),
|
|
3933
4788
|
oidc: remoteApiOidcSchema.optional()
|
|
3934
4789
|
});
|
|
3935
4790
|
const remoteApiSchema = zod.z.object({ auth: remoteApiAuthSchema.optional() });
|
|
4791
|
+
const managementClientBindingSchema = zod.z.object({
|
|
4792
|
+
clientId: zod.z.string().trim().min(1).max(128),
|
|
4793
|
+
subject: zod.z.string().trim().min(1).max(512).optional(),
|
|
4794
|
+
userId: zod.z.string().trim().regex(/^[a-f\d]{24}$/i, "must be a MongoDB ObjectId").transform((userId) => userId.toLowerCase()),
|
|
4795
|
+
tenantId: zod.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"),
|
|
4796
|
+
enabled: zod.z.boolean().default(true)
|
|
4797
|
+
}).strict();
|
|
4798
|
+
const managementApiOidcSchema = oidcAccessTokenSchema.strict().superRefine(validateEnabledOidc);
|
|
4799
|
+
const managementApiAuthSchema = zod.z.object({
|
|
4800
|
+
oidc: managementApiOidcSchema,
|
|
4801
|
+
clients: zod.z.array(managementClientBindingSchema).max(100).default([])
|
|
4802
|
+
}).strict().superRefine((auth, ctx) => {
|
|
4803
|
+
if (auth.oidc.enabled === true && auth.clients.length === 0) ctx.addIssue({
|
|
4804
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4805
|
+
path: ["clients"],
|
|
4806
|
+
message: "at least one client binding is required when management auth is enabled"
|
|
4807
|
+
});
|
|
4808
|
+
const clientIds = /* @__PURE__ */ new Set();
|
|
4809
|
+
for (let index = 0; index < auth.clients.length; index++) {
|
|
4810
|
+
const client = auth.clients[index];
|
|
4811
|
+
if (clientIds.has(client.clientId)) ctx.addIssue({
|
|
4812
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4813
|
+
path: [
|
|
4814
|
+
"clients",
|
|
4815
|
+
index,
|
|
4816
|
+
"clientId"
|
|
4817
|
+
],
|
|
4818
|
+
message: "client IDs must be unique"
|
|
4819
|
+
});
|
|
4820
|
+
clientIds.add(client.clientId);
|
|
4821
|
+
}
|
|
4822
|
+
});
|
|
4823
|
+
const managementApiSchema = zod.z.object({ auth: managementApiAuthSchema.optional() }).strict();
|
|
3936
4824
|
/**
|
|
3937
4825
|
* Permission mode applied to a tool call. Mirrors `@librechat/agents`'s
|
|
3938
4826
|
* `ToolPolicyMode` 1:1.
|
|
@@ -3955,7 +4843,7 @@ const toolApprovalModeSchema = zod.z.enum([
|
|
|
3955
4843
|
*
|
|
3956
4844
|
* Shape mirrors `@librechat/agents`'s `ToolPolicyConfig` so the host can map it
|
|
3957
4845
|
* directly into `createToolPolicyHook(config)`. The SDK does the evaluation
|
|
3958
|
-
* (`deny →
|
|
4846
|
+
* (`deny → ask → allow → bypass → dontAsk → fallthrough(ask)`); this config
|
|
3959
4847
|
* just describes the surface.
|
|
3960
4848
|
*
|
|
3961
4849
|
* Conventions:
|
|
@@ -4038,6 +4926,62 @@ const checkpointerSchema = zod.z.object({
|
|
|
4038
4926
|
checkpointCollectionName: zod.z.string().optional(),
|
|
4039
4927
|
checkpointWritesCollectionName: zod.z.string().optional()
|
|
4040
4928
|
}).optional();
|
|
4929
|
+
const codeEnvironmentBaseURLSchema = zod.z.string().trim().url().refine((value) => {
|
|
4930
|
+
try {
|
|
4931
|
+
const url = new URL(value);
|
|
4932
|
+
return (url.protocol === "http:" || url.protocol === "https:") && !value.includes("?") && !value.includes("#") && url.search.length === 0 && url.hash.length === 0;
|
|
4933
|
+
} catch {
|
|
4934
|
+
return false;
|
|
4935
|
+
}
|
|
4936
|
+
}, { message: "Code environment baseURL must be an HTTP(S) base URL without query or fragment" });
|
|
4937
|
+
function isSecureCodeEnvironmentControlURL(baseURL) {
|
|
4938
|
+
try {
|
|
4939
|
+
const url = new URL(baseURL.trim());
|
|
4940
|
+
if (url.protocol === "https:") return true;
|
|
4941
|
+
if (url.protocol !== "http:") return false;
|
|
4942
|
+
return url.hostname === "localhost" || url.hostname === "127.0.0.1" || url.hostname === "[::1]";
|
|
4943
|
+
} catch {
|
|
4944
|
+
return false;
|
|
4945
|
+
}
|
|
4946
|
+
}
|
|
4947
|
+
const codeEnvironmentPermissionDecisionSchema = zod.z.enum([
|
|
4948
|
+
"allow",
|
|
4949
|
+
"ask",
|
|
4950
|
+
"deny"
|
|
4951
|
+
]);
|
|
4952
|
+
const codeEnvironmentPermissionFieldSchema = zod.z.object({
|
|
4953
|
+
allowed: zod.z.array(codeEnvironmentPermissionDecisionSchema).min(1),
|
|
4954
|
+
default: codeEnvironmentPermissionDecisionSchema.optional().default("ask")
|
|
4955
|
+
}).strict().superRefine((field, context) => {
|
|
4956
|
+
if (!field.allowed.includes(field.default)) context.addIssue({
|
|
4957
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4958
|
+
path: ["default"],
|
|
4959
|
+
message: "Permission default must be included in allowed values"
|
|
4960
|
+
});
|
|
4961
|
+
});
|
|
4962
|
+
/** Existing attached commands used a fixed 30-second execution budget. */
|
|
4963
|
+
const CODE_ENVIRONMENT_COMMAND_TIMEOUT_DEFAULT_MS = 3e4;
|
|
4964
|
+
/** Protocol-level ceiling; deployments may only lower this value. */
|
|
4965
|
+
const CODE_ENVIRONMENT_COMMAND_TIMEOUT_HARD_MAX_MS = 5 * 6e4;
|
|
4966
|
+
/**
|
|
4967
|
+
* Typed user-tunable surface for one attached code environment. Omitted fields
|
|
4968
|
+
* remain fixed at LibreChat's safe baseline. Isolation, networking, mounts,
|
|
4969
|
+
* privileged execution, and secrets are deliberately not representable here.
|
|
4970
|
+
*/
|
|
4971
|
+
const codeEnvironmentUserConfigSchema = zod.z.object({
|
|
4972
|
+
permissions: zod.z.object({
|
|
4973
|
+
fileWrite: codeEnvironmentPermissionFieldSchema.optional(),
|
|
4974
|
+
commandExecution: codeEnvironmentPermissionFieldSchema.optional()
|
|
4975
|
+
}).strict().optional(),
|
|
4976
|
+
limits: zod.z.object({
|
|
4977
|
+
/** Maximum timeout a Bash invocation may request. Omission preserves
|
|
4978
|
+
* the historical 30-second command budget. */
|
|
4979
|
+
maxCommandTimeoutMs: zod.z.number().int().min(1).max(CODE_ENVIRONMENT_COMMAND_TIMEOUT_HARD_MAX_MS).optional() }).strict().optional()
|
|
4980
|
+
}).strict();
|
|
4981
|
+
const codeEnvironmentUserSettingsSchema = zod.z.object({ permissions: zod.z.object({
|
|
4982
|
+
fileWrite: codeEnvironmentPermissionDecisionSchema.optional(),
|
|
4983
|
+
commandExecution: codeEnvironmentPermissionDecisionSchema.optional()
|
|
4984
|
+
}).strict().optional() }).strict();
|
|
4041
4985
|
const agentsEndpointSchema = baseEndpointSchema.omit({ baseURL: true }).merge(zod.z.object({
|
|
4042
4986
|
recursionLimit: zod.z.number().optional(),
|
|
4043
4987
|
disableBuilder: zod.z.boolean().optional().default(false),
|
|
@@ -4054,9 +4998,150 @@ const agentsEndpointSchema = baseEndpointSchema.omit({ baseURL: true }).merge(zo
|
|
|
4054
4998
|
maxCitations: zod.z.number().min(1).max(50).optional().default(30),
|
|
4055
4999
|
maxCitationsPerFile: zod.z.number().min(1).max(10).optional().default(7),
|
|
4056
5000
|
minRelevanceScore: zod.z.number().min(0).max(1).optional().default(.45),
|
|
5001
|
+
/** Maximum explicit subagents per agent (`agent_ids` and `graphs`); raised from
|
|
5002
|
+
* the shipped default of 10 for orchestration-heavy deployments, bounded by
|
|
5003
|
+
* `MAX_SUBAGENTS_CEILING`. */
|
|
5004
|
+
maxSubagents: zod.z.number().int().min(1).max(50).optional().default(10),
|
|
5005
|
+
/** Run-scoped file access for explicitly opted-in subagent delegations. */
|
|
5006
|
+
fileSharing: zod.z.object({
|
|
5007
|
+
enabled: zod.z.boolean().optional().default(false),
|
|
5008
|
+
allowSiblingSharing: zod.z.boolean().optional().default(false),
|
|
5009
|
+
maxFiles: zod.z.number().int().min(1).max(1e3).optional().default(100),
|
|
5010
|
+
/** Aggregate disk budget for private output versions retained during a run. */
|
|
5011
|
+
maxPrivateBytes: zod.z.number().int().min(1).max(10737418240).optional().default(268435456),
|
|
5012
|
+
ttlMs: zod.z.number().int().min(1).max(864e5).optional().default(36e5)
|
|
5013
|
+
}).optional(),
|
|
5014
|
+
/** Maximum concurrent Code API uploads per route and authenticated principal. */
|
|
5015
|
+
codeApiUploadConcurrency: zod.z.number().int().min(1).max(100).optional().default(3),
|
|
5016
|
+
/** Maximum wall-clock time spent waiting on Code API rate limits per operation. */
|
|
5017
|
+
codeApiMaxRetryWaitMs: zod.z.number().int().min(0).max(3e5).optional().default(2e4),
|
|
4057
5018
|
allowedProviders: zod.z.array(zod.z.union([zod.z.string(), eModelEndpointSchema])).optional(),
|
|
4058
5019
|
capabilities: zod.z.array(zod.z.nativeEnum(AgentCapabilities)).optional().default(defaultAgentCapabilities),
|
|
5020
|
+
/** Controls which workspace-sharing scopes users may select for stateful code sessions.
|
|
5021
|
+
* Omit this block to preserve the legacy behavior of allowing every scope. */
|
|
5022
|
+
statefulCodeSessions: zod.z.object({
|
|
5023
|
+
allowedEnvironments: zod.z.array(zod.z.enum(STATEFUL_CODE_ENVIRONMENTS)).min(1),
|
|
5024
|
+
/** Server-only personal worker enrollment policy. Effective principal
|
|
5025
|
+
* policy may tighten, but never raise, the deployment ceiling. */
|
|
5026
|
+
principalWorkers: zod.z.object({
|
|
5027
|
+
enabled: zod.z.boolean().optional(),
|
|
5028
|
+
/** Defaults to five. Zero disables enrollment; existing machines remain usable. */
|
|
5029
|
+
maxPerUser: zod.z.number().int().min(0).max(Number.MAX_SAFE_INTEGER).optional()
|
|
5030
|
+
}).optional(),
|
|
5031
|
+
/** Operator-managed execution environments. Attached entries route to a
|
|
5032
|
+
* Code API deployment backed by an outbound librechat-code worker. */
|
|
5033
|
+
environments: zod.z.array(zod.z.object({
|
|
5034
|
+
id: zod.z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/),
|
|
5035
|
+
name: zod.z.string().min(1).max(100),
|
|
5036
|
+
type: zod.z.enum(["managed", "attached"]),
|
|
5037
|
+
baseURL: codeEnvironmentBaseURLSchema,
|
|
5038
|
+
default: zod.z.boolean().optional(),
|
|
5039
|
+
/** Server-only outbound worker route. Removed from public config. */
|
|
5040
|
+
workerId: zod.z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/).optional(),
|
|
5041
|
+
/** Distinguishes operator policy from a principal-authorized
|
|
5042
|
+
* environment merged into request-scoped server config. */
|
|
5043
|
+
owner: zod.z.enum(["deployment", "principal"]).optional().default("deployment"),
|
|
5044
|
+
/** Administrator-controlled user-tunable settings. Only fields
|
|
5045
|
+
* represented here may be changed by a principal. */
|
|
5046
|
+
configSchema: codeEnvironmentUserConfigSchema.optional(),
|
|
5047
|
+
/** Request-scoped effective settings for a principal-owned environment.
|
|
5048
|
+
* Deployment config should define defaults through configSchema instead. */
|
|
5049
|
+
settings: codeEnvironmentUserSettingsSchema.optional(),
|
|
5050
|
+
/** Server-only enrollment metadata. `tokenEnv` names an
|
|
5051
|
+
* environment variable and never contains the token itself. */
|
|
5052
|
+
pairing: zod.z.object({
|
|
5053
|
+
workerId: zod.z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/).optional(),
|
|
5054
|
+
allowPrincipalWorkers: zod.z.boolean().optional().default(false),
|
|
5055
|
+
tokenEnv: zod.z.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/)
|
|
5056
|
+
}).superRefine((pairing, pairingContext) => {
|
|
5057
|
+
if (pairing.workerId != null || pairing.allowPrincipalWorkers === true) return;
|
|
5058
|
+
pairingContext.addIssue({
|
|
5059
|
+
code: zod.z.ZodIssueCode.custom,
|
|
5060
|
+
message: "Pairing requires a workerId or principal workers"
|
|
5061
|
+
});
|
|
5062
|
+
}).optional()
|
|
5063
|
+
})).optional()
|
|
5064
|
+
}).superRefine((value, context) => {
|
|
5065
|
+
if (!value?.environments) return;
|
|
5066
|
+
const ids = /* @__PURE__ */ new Set();
|
|
5067
|
+
let defaults = 0;
|
|
5068
|
+
let executableEnvironments = 0;
|
|
5069
|
+
for (const environment of value.environments) {
|
|
5070
|
+
const pairingOnly = environment.pairing?.allowPrincipalWorkers === true && environment.pairing.workerId == null && environment.workerId == null;
|
|
5071
|
+
if (environment.pairing != null && environment.type !== "attached") context.addIssue({
|
|
5072
|
+
code: zod.z.ZodIssueCode.custom,
|
|
5073
|
+
message: "Only attached code environments may configure pairing",
|
|
5074
|
+
path: [
|
|
5075
|
+
"environments",
|
|
5076
|
+
environment.id,
|
|
5077
|
+
"pairing"
|
|
5078
|
+
]
|
|
5079
|
+
});
|
|
5080
|
+
if (environment.pairing != null && environment.owner !== "deployment") context.addIssue({
|
|
5081
|
+
code: zod.z.ZodIssueCode.custom,
|
|
5082
|
+
message: "Only deployment-owned code environments may configure pairing",
|
|
5083
|
+
path: [
|
|
5084
|
+
"environments",
|
|
5085
|
+
environment.id,
|
|
5086
|
+
"pairing"
|
|
5087
|
+
]
|
|
5088
|
+
});
|
|
5089
|
+
if (environment.pairing != null && !isSecureCodeEnvironmentControlURL(environment.baseURL)) context.addIssue({
|
|
5090
|
+
code: zod.z.ZodIssueCode.custom,
|
|
5091
|
+
message: "Paired code environments require HTTPS outside loopback development",
|
|
5092
|
+
path: [
|
|
5093
|
+
"environments",
|
|
5094
|
+
environment.id,
|
|
5095
|
+
"baseURL"
|
|
5096
|
+
]
|
|
5097
|
+
});
|
|
5098
|
+
if (environment.workerId != null && environment.pairing?.workerId != null && environment.workerId !== environment.pairing.workerId) context.addIssue({
|
|
5099
|
+
code: zod.z.ZodIssueCode.custom,
|
|
5100
|
+
message: "Code environment workerId must match pairing.workerId",
|
|
5101
|
+
path: [
|
|
5102
|
+
"environments",
|
|
5103
|
+
environment.id,
|
|
5104
|
+
"workerId"
|
|
5105
|
+
]
|
|
5106
|
+
});
|
|
5107
|
+
if (pairingOnly && environment.default === true) context.addIssue({
|
|
5108
|
+
code: zod.z.ZodIssueCode.custom,
|
|
5109
|
+
message: "Pairing-only code control planes cannot be execution defaults",
|
|
5110
|
+
path: [
|
|
5111
|
+
"environments",
|
|
5112
|
+
environment.id,
|
|
5113
|
+
"default"
|
|
5114
|
+
]
|
|
5115
|
+
});
|
|
5116
|
+
if (ids.has(environment.id)) context.addIssue({
|
|
5117
|
+
code: zod.z.ZodIssueCode.custom,
|
|
5118
|
+
message: `Duplicate code environment id: ${environment.id}`,
|
|
5119
|
+
path: ["environments"]
|
|
5120
|
+
});
|
|
5121
|
+
ids.add(environment.id);
|
|
5122
|
+
if (!pairingOnly) {
|
|
5123
|
+
executableEnvironments += 1;
|
|
5124
|
+
if (environment.default === true) defaults += 1;
|
|
5125
|
+
}
|
|
5126
|
+
}
|
|
5127
|
+
if (executableEnvironments > 0 && defaults !== 1) context.addIssue({
|
|
5128
|
+
code: zod.z.ZodIssueCode.custom,
|
|
5129
|
+
message: "Exactly one stateful code environment must be the default",
|
|
5130
|
+
path: ["environments"]
|
|
5131
|
+
});
|
|
5132
|
+
}).optional(),
|
|
5133
|
+
/** Optional trusted origin for in-process agent event delivery. */
|
|
5134
|
+
eventDriven: zod.z.object({ selfUrl: zod.z.string().url().optional() }).optional(),
|
|
5135
|
+
/** Conversational background-task delivery policy. Automatic completion wakeups are
|
|
5136
|
+
* enabled unless an administrator explicitly restores poll-only behavior. */
|
|
5137
|
+
backgroundTasks: zod.z.object({
|
|
5138
|
+
completionWakeups: zod.z.boolean().optional().default(true),
|
|
5139
|
+
/** Cooperative cancellation for process-local ordinary tools. Off
|
|
5140
|
+
* by default so existing deployments opt into the new control. */
|
|
5141
|
+
ordinaryToolCancellation: zod.z.boolean().optional().default(false)
|
|
5142
|
+
}).optional(),
|
|
4059
5143
|
skills: zod.z.object({ maxCatalogSkills: zod.z.number().int().min(1).max(100).optional() }).optional(),
|
|
5144
|
+
managementApi: managementApiSchema.optional(),
|
|
4060
5145
|
remoteApi: remoteApiSchema.optional(),
|
|
4061
5146
|
/** Human-in-the-loop tool approval policy. Off by default. */
|
|
4062
5147
|
toolApproval: toolApprovalPolicySchema,
|
|
@@ -4068,7 +5153,8 @@ const agentsEndpointSchema = baseEndpointSchema.omit({ baseURL: true }).merge(zo
|
|
|
4068
5153
|
capabilities: defaultAgentCapabilities,
|
|
4069
5154
|
maxCitations: 30,
|
|
4070
5155
|
maxCitationsPerFile: 7,
|
|
4071
|
-
minRelevanceScore: .45
|
|
5156
|
+
minRelevanceScore: .45,
|
|
5157
|
+
maxSubagents: 10
|
|
4072
5158
|
});
|
|
4073
5159
|
const paramDefinitionSchema = zod.z.object({
|
|
4074
5160
|
key: zod.z.string(),
|
|
@@ -4086,7 +5172,11 @@ const paramDefinitionSchema = zod.z.object({
|
|
|
4086
5172
|
range: zod.z.object({
|
|
4087
5173
|
min: zod.z.number(),
|
|
4088
5174
|
max: zod.z.number(),
|
|
4089
|
-
step: zod.z.number().optional()
|
|
5175
|
+
step: zod.z.number().optional(),
|
|
5176
|
+
positiveMin: zod.z.number().optional()
|
|
5177
|
+
}).refine((value) => value.positiveMin == null || value.positiveMin <= value.max, {
|
|
5178
|
+
message: "range.positiveMin cannot exceed range.max",
|
|
5179
|
+
path: ["positiveMin"]
|
|
4090
5180
|
}).optional(),
|
|
4091
5181
|
enumMappings: zod.z.record(zod.z.union([
|
|
4092
5182
|
zod.z.number(),
|
|
@@ -4197,7 +5287,15 @@ const azureEndpointSchema = zod.z.object({
|
|
|
4197
5287
|
activityPhaseModel: true,
|
|
4198
5288
|
activityPhaseEndpoint: true,
|
|
4199
5289
|
activityPhasePrompt: true,
|
|
4200
|
-
activityPhaseMaxPerRun: true
|
|
5290
|
+
activityPhaseMaxPerRun: true,
|
|
5291
|
+
reasoningLabel: true,
|
|
5292
|
+
reasoningLabelModel: true,
|
|
5293
|
+
reasoningLabelEndpoint: true,
|
|
5294
|
+
reasoningLabelPrompt: true,
|
|
5295
|
+
reasoningLabelMinChars: true,
|
|
5296
|
+
reasoningLabelUpdateChars: true,
|
|
5297
|
+
reasoningLabelUpdateIntervalMs: true,
|
|
5298
|
+
reasoningLabelMaxPerRun: true
|
|
4201
5299
|
}).partial()
|
|
4202
5300
|
);
|
|
4203
5301
|
/**
|
|
@@ -4301,6 +5399,21 @@ const sttSchema = zod.z.object({
|
|
|
4301
5399
|
openai: sttOpenaiSchema.optional(),
|
|
4302
5400
|
azureOpenAI: sttAzureOpenAISchema.optional()
|
|
4303
5401
|
});
|
|
5402
|
+
/**
|
|
5403
|
+
* The speech providers a schema actually configures. `allowedAddresses` is transport
|
|
5404
|
+
* policy rather than a provider, and a provider key present but empty configures
|
|
5405
|
+
* nothing. The speech services accept a schema only when exactly one survives here, so
|
|
5406
|
+
* the upload router reads availability from the same list and never routes audio to a
|
|
5407
|
+
* transcription that cannot run.
|
|
5408
|
+
*/
|
|
5409
|
+
function listConfiguredSpeechProviders(schema) {
|
|
5410
|
+
if (schema == null) return [];
|
|
5411
|
+
return Object.entries(schema).filter(([key, value]) => key !== "allowedAddresses" && value != null && typeof value === "object" && Object.keys(value).length > 0);
|
|
5412
|
+
}
|
|
5413
|
+
/** Whether a speech schema names exactly one usable provider. */
|
|
5414
|
+
function isSpeechProviderConfigured(schema) {
|
|
5415
|
+
return listConfiguredSpeechProviders(schema).length === 1;
|
|
5416
|
+
}
|
|
4304
5417
|
const speechTab = zod.z.object({
|
|
4305
5418
|
conversationMode: zod.z.boolean().optional(),
|
|
4306
5419
|
advancedMode: zod.z.boolean().optional(),
|
|
@@ -4342,6 +5455,10 @@ let RateLimitPrefix = /* @__PURE__ */ function(RateLimitPrefix) {
|
|
|
4342
5455
|
return RateLimitPrefix;
|
|
4343
5456
|
}({});
|
|
4344
5457
|
const rateLimitSchema = zod.z.object({
|
|
5458
|
+
agentEvents: zod.z.object({
|
|
5459
|
+
userMax: zod.z.number().int().positive().optional(),
|
|
5460
|
+
userWindowInMinutes: zod.z.number().positive().optional()
|
|
5461
|
+
}).optional(),
|
|
4345
5462
|
fileUploads: zod.z.object({
|
|
4346
5463
|
ipMax: zod.z.number().optional(),
|
|
4347
5464
|
ipWindowInMinutes: zod.z.number().optional(),
|
|
@@ -4381,7 +5498,14 @@ const termsOfServiceSchema = zod.z.object({
|
|
|
4381
5498
|
modalContent: zod.z.string().or(zod.z.array(zod.z.string())).optional()
|
|
4382
5499
|
});
|
|
4383
5500
|
const localizedStringSchema = zod.z.union([zod.z.string(), zod.z.record(zod.z.string())]);
|
|
5501
|
+
const mcpRefreshDefaults = {
|
|
5502
|
+
toolsRefreshInterval: 300 * 1e3,
|
|
5503
|
+
statusRefreshInterval: 30 * 1e3
|
|
5504
|
+
};
|
|
4384
5505
|
const mcpServersSchema = zod.z.object({
|
|
5506
|
+
/** Foreground polling intervals in milliseconds; 0 disables polling. */
|
|
5507
|
+
toolsRefreshInterval: zod.z.number().int().nonnegative().max(2147483647).optional(),
|
|
5508
|
+
statusRefreshInterval: zod.z.number().int().nonnegative().max(2147483647).optional(),
|
|
4385
5509
|
placeholder: zod.z.string().optional(),
|
|
4386
5510
|
use: zod.z.boolean().optional(),
|
|
4387
5511
|
create: zod.z.boolean().optional(),
|
|
@@ -4393,6 +5517,68 @@ const mcpServersSchema = zod.z.object({
|
|
|
4393
5517
|
subLabel: localizedStringSchema.optional()
|
|
4394
5518
|
}).optional()
|
|
4395
5519
|
}).optional();
|
|
5520
|
+
/** Values the trace viewer uses for any `interface.traceViewer` field left unset. */
|
|
5521
|
+
const traceViewerDefaults = {
|
|
5522
|
+
enabled: false,
|
|
5523
|
+
showInputOutput: false,
|
|
5524
|
+
maxRecords: 1e3,
|
|
5525
|
+
maxContentLength: 5e4,
|
|
5526
|
+
requestsPerMinute: 30,
|
|
5527
|
+
requestTimeoutMs: 1e4
|
|
5528
|
+
};
|
|
5529
|
+
/** Inclusive bounds for the numeric `interface.traceViewer` fields. */
|
|
5530
|
+
const traceViewerLimits = {
|
|
5531
|
+
maxRecords: {
|
|
5532
|
+
min: 1,
|
|
5533
|
+
max: 1e4
|
|
5534
|
+
},
|
|
5535
|
+
maxContentLength: {
|
|
5536
|
+
min: 1,
|
|
5537
|
+
max: 1e6
|
|
5538
|
+
},
|
|
5539
|
+
requestsPerMinute: {
|
|
5540
|
+
min: 1,
|
|
5541
|
+
max: 1e3
|
|
5542
|
+
},
|
|
5543
|
+
requestTimeoutMs: {
|
|
5544
|
+
min: 1e3,
|
|
5545
|
+
max: 3e5
|
|
5546
|
+
}
|
|
5547
|
+
};
|
|
5548
|
+
const boundedIntegerSchema = (field) => zod.z.number().int().min(traceViewerLimits[field].min).max(traceViewerLimits[field].max).optional();
|
|
5549
|
+
const traceViewerSchema = zod.z.object({
|
|
5550
|
+
/** Shows the conversation trace control for traces this deployment exported. */
|
|
5551
|
+
enabled: zod.z.boolean().optional(),
|
|
5552
|
+
/** Returns observation input, output and metadata in the record inspector. */
|
|
5553
|
+
showInputOutput: zod.z.boolean().optional(),
|
|
5554
|
+
/** Observations read from the tracing backend per request. */
|
|
5555
|
+
maxRecords: boundedIntegerSchema("maxRecords"),
|
|
5556
|
+
/** Characters kept from each input, output and metadata value before truncation. */
|
|
5557
|
+
maxContentLength: boundedIntegerSchema("maxContentLength"),
|
|
5558
|
+
/** Trace reads one user may start per minute. */
|
|
5559
|
+
requestsPerMinute: boundedIntegerSchema("requestsPerMinute"),
|
|
5560
|
+
/** Budget for each round trip to the tracing backend, in milliseconds. */
|
|
5561
|
+
requestTimeoutMs: boundedIntegerSchema("requestTimeoutMs")
|
|
5562
|
+
});
|
|
5563
|
+
function boundedInteger(value, field) {
|
|
5564
|
+
const { min, max } = traceViewerLimits[field];
|
|
5565
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value >= min ? Math.min(value, max) : traceViewerDefaults[field];
|
|
5566
|
+
}
|
|
5567
|
+
/**
|
|
5568
|
+
* Fills unset or invalid `interface.traceViewer` fields from
|
|
5569
|
+
* {@link traceViewerDefaults}. Admin config overrides reach runtime without
|
|
5570
|
+
* schema validation, so every consumer reads the section through this.
|
|
5571
|
+
*/
|
|
5572
|
+
function resolveTraceViewerConfig(config) {
|
|
5573
|
+
return {
|
|
5574
|
+
enabled: config?.enabled === true,
|
|
5575
|
+
showInputOutput: config?.showInputOutput === true,
|
|
5576
|
+
maxRecords: boundedInteger(config?.maxRecords, "maxRecords"),
|
|
5577
|
+
maxContentLength: boundedInteger(config?.maxContentLength, "maxContentLength"),
|
|
5578
|
+
requestsPerMinute: boundedInteger(config?.requestsPerMinute, "requestsPerMinute"),
|
|
5579
|
+
requestTimeoutMs: boundedInteger(config?.requestTimeoutMs, "requestTimeoutMs")
|
|
5580
|
+
};
|
|
5581
|
+
}
|
|
4396
5582
|
let RetentionMode = /* @__PURE__ */ function(RetentionMode) {
|
|
4397
5583
|
RetentionMode["ALL"] = "all";
|
|
4398
5584
|
RetentionMode["TEMPORARY"] = "temporary";
|
|
@@ -4426,6 +5612,7 @@ const interfaceSchema = zod.z.object({
|
|
|
4426
5612
|
})]).optional(),
|
|
4427
5613
|
temporaryChat: zod.z.boolean().optional(),
|
|
4428
5614
|
temporaryChatRetention: zod.z.number().min(1).max(8760).optional(),
|
|
5615
|
+
generalChatRetention: zod.z.number().min(1).max(8760).optional(),
|
|
4429
5616
|
autoSubmitFromUrl: zod.z.boolean().optional(),
|
|
4430
5617
|
retentionMode: zod.z.nativeEnum(RetentionMode).default("temporary"),
|
|
4431
5618
|
retainAgentFiles: zod.z.boolean().optional(),
|
|
@@ -4433,6 +5620,7 @@ const interfaceSchema = zod.z.object({
|
|
|
4433
5620
|
webSearch: zod.z.boolean().optional(),
|
|
4434
5621
|
contextUsage: zod.z.boolean().optional(),
|
|
4435
5622
|
contextCost: zod.z.boolean().optional(),
|
|
5623
|
+
feedback: zod.z.boolean().optional(),
|
|
4436
5624
|
currency: zod.z.object({
|
|
4437
5625
|
code: zod.z.string(),
|
|
4438
5626
|
rate: zod.z.number().positive()
|
|
@@ -4445,6 +5633,7 @@ const interfaceSchema = zod.z.object({
|
|
|
4445
5633
|
marketplace: zod.z.object({ use: zod.z.boolean().optional() }).optional(),
|
|
4446
5634
|
fileSearch: zod.z.boolean().optional(),
|
|
4447
5635
|
fileCitations: zod.z.boolean().optional(),
|
|
5636
|
+
traceViewer: traceViewerSchema.optional(),
|
|
4448
5637
|
/** Tool keys (and `'mcp'` or an MCP server name) pinned to the prompt bar by default */
|
|
4449
5638
|
defaultPinnedTools: zod.z.array(zod.z.string()).optional(),
|
|
4450
5639
|
buildInfo: zod.z.boolean().optional(),
|
|
@@ -4466,6 +5655,26 @@ const interfaceSchema = zod.z.object({
|
|
|
4466
5655
|
share: zod.z.boolean().optional(),
|
|
4467
5656
|
public: zod.z.boolean().optional(),
|
|
4468
5657
|
snapshotFiles: zod.z.boolean().optional()
|
|
5658
|
+
})]).optional(),
|
|
5659
|
+
schedules: zod.z.union([zod.z.boolean(), zod.z.object({
|
|
5660
|
+
use: zod.z.boolean().optional(),
|
|
5661
|
+
create: zod.z.boolean().optional(),
|
|
5662
|
+
maxPerUser: zod.z.number().int().min(0).optional(),
|
|
5663
|
+
minIntervalMinutes: zod.z.number().int().min(1).optional(),
|
|
5664
|
+
autoDisableAfterFailures: zod.z.number().int().min(1).optional(),
|
|
5665
|
+
admissionConcurrency: zod.z.number().int().min(1).max(100).optional(),
|
|
5666
|
+
fireConcurrency: zod.z.number().int().min(1).optional(),
|
|
5667
|
+
mcpPreflightConcurrency: zod.z.number().int().min(1).max(10).optional(),
|
|
5668
|
+
mcpPreflightTimeoutMs: zod.z.number().int().min(1e3).max(6e5).optional(),
|
|
5669
|
+
/** Refuse schedules that are not filed under a chat project. Enforced on
|
|
5670
|
+
* create/update AND at every fire, so raising it later stops schedules
|
|
5671
|
+
* that predate the policy instead of grandfathering them. */
|
|
5672
|
+
requireProject: zod.z.boolean().optional(),
|
|
5673
|
+
/** Pins every scheduled run to ONE chat project, ignoring any client
|
|
5674
|
+
* choice. Implies `requireProject`. The project must belong to the
|
|
5675
|
+
* schedule's owner, so a deployment-wide value only makes sense with a
|
|
5676
|
+
* per-user/per-role config override. */
|
|
5677
|
+
projectId: zod.z.string().trim().min(1).optional()
|
|
4469
5678
|
})]).optional()
|
|
4470
5679
|
}).default({
|
|
4471
5680
|
modelSelect: true,
|
|
@@ -4492,6 +5701,7 @@ const interfaceSchema = zod.z.object({
|
|
|
4492
5701
|
webSearch: true,
|
|
4493
5702
|
contextUsage: true,
|
|
4494
5703
|
contextCost: false,
|
|
5704
|
+
feedback: true,
|
|
4495
5705
|
peoplePicker: {
|
|
4496
5706
|
users: true,
|
|
4497
5707
|
groups: true,
|
|
@@ -4561,12 +5771,14 @@ let SearchProviders = /* @__PURE__ */ function(SearchProviders) {
|
|
|
4561
5771
|
SearchProviders["SERPER"] = "serper";
|
|
4562
5772
|
SearchProviders["SEARXNG"] = "searxng";
|
|
4563
5773
|
SearchProviders["TAVILY"] = "tavily";
|
|
5774
|
+
SearchProviders["KEENABLE"] = "keenable";
|
|
4564
5775
|
return SearchProviders;
|
|
4565
5776
|
}({});
|
|
4566
5777
|
let ScraperProviders = /* @__PURE__ */ function(ScraperProviders) {
|
|
4567
5778
|
ScraperProviders["FIRECRAWL"] = "firecrawl";
|
|
4568
5779
|
ScraperProviders["SERPER"] = "serper";
|
|
4569
5780
|
ScraperProviders["TAVILY"] = "tavily";
|
|
5781
|
+
ScraperProviders["KEENABLE"] = "keenable";
|
|
4570
5782
|
return ScraperProviders;
|
|
4571
5783
|
}({});
|
|
4572
5784
|
let RerankerTypes = /* @__PURE__ */ function(RerankerTypes) {
|
|
@@ -4581,6 +5793,17 @@ let SafeSearchTypes = /* @__PURE__ */ function(SafeSearchTypes) {
|
|
|
4581
5793
|
SafeSearchTypes[SafeSearchTypes["STRICT"] = 2] = "STRICT";
|
|
4582
5794
|
return SafeSearchTypes;
|
|
4583
5795
|
}({});
|
|
5796
|
+
/**
|
|
5797
|
+
* Normalizes a SearXNG engine list into the comma-separated form the API expects.
|
|
5798
|
+
* Accepts the YAML list or comma-separated string an operator may write, and is
|
|
5799
|
+
* applied both at the schema boundary and when loading the runtime config, since
|
|
5800
|
+
* `loadCustomConfig` returns the raw YAML object rather than the parsed result.
|
|
5801
|
+
*/
|
|
5802
|
+
function normalizeSearxngEngines(engines) {
|
|
5803
|
+
if (engines == null) return;
|
|
5804
|
+
const normalized = (Array.isArray(engines) ? engines : engines.split(",")).map((engine) => engine.trim()).filter(Boolean);
|
|
5805
|
+
return normalized.length ? normalized.join(",") : void 0;
|
|
5806
|
+
}
|
|
4584
5807
|
const webSearchSchema = zod.z.object({
|
|
4585
5808
|
allowedAddresses: allowedAddressesSchema,
|
|
4586
5809
|
serperApiKey: zod.z.string().optional().default("${SERPER_API_KEY}"),
|
|
@@ -4596,6 +5819,8 @@ const webSearchSchema = zod.z.object({
|
|
|
4596
5819
|
tavilyApiKeyPreview: apiKeyPreviewSchema,
|
|
4597
5820
|
tavilySearchUrl: zod.z.string().optional().default("${TAVILY_SEARCH_URL}"),
|
|
4598
5821
|
tavilyExtractUrl: zod.z.string().optional().default("${TAVILY_EXTRACT_URL}"),
|
|
5822
|
+
keenableApiKey: zod.z.string().optional().default("${KEENABLE_API_KEY}"),
|
|
5823
|
+
keenableApiUrl: zod.z.string().optional().default("${KEENABLE_API_URL}"),
|
|
4599
5824
|
jinaApiKey: zod.z.string().optional().default("${JINA_API_KEY}"),
|
|
4600
5825
|
jinaApiKeyPreview: apiKeyPreviewSchema,
|
|
4601
5826
|
jinaApiUrl: zod.z.string().optional().default("${JINA_API_URL}"),
|
|
@@ -4633,6 +5858,16 @@ const webSearchSchema = zod.z.object({
|
|
|
4633
5858
|
tag: zod.z.string().nullable().optional()
|
|
4634
5859
|
}).optional()
|
|
4635
5860
|
}).optional(),
|
|
5861
|
+
searxngSearchOptions: zod.z.object({
|
|
5862
|
+
engines: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).transform(normalizeSearxngEngines).optional(),
|
|
5863
|
+
language: zod.z.string().optional(),
|
|
5864
|
+
timeRange: zod.z.enum([
|
|
5865
|
+
"day",
|
|
5866
|
+
"month",
|
|
5867
|
+
"year"
|
|
5868
|
+
]).optional(),
|
|
5869
|
+
timeout: zod.z.number().int().positive().max(12e4).optional()
|
|
5870
|
+
}).optional(),
|
|
4636
5871
|
tavilySearchOptions: zod.z.object({
|
|
4637
5872
|
searchDepth: zod.z.enum([
|
|
4638
5873
|
"basic",
|
|
@@ -4673,6 +5908,16 @@ const webSearchSchema = zod.z.object({
|
|
|
4673
5908
|
includeFavicon: zod.z.boolean().optional(),
|
|
4674
5909
|
format: zod.z.enum(["markdown", "text"]).optional(),
|
|
4675
5910
|
timeout: zod.z.number().int().nonnegative().max(12e4).optional()
|
|
5911
|
+
}).optional(),
|
|
5912
|
+
keenableSearchOptions: zod.z.object({
|
|
5913
|
+
maxResults: zod.z.number().int().min(1).max(20).optional(),
|
|
5914
|
+
site: zod.z.string().optional(),
|
|
5915
|
+
attributionTitle: zod.z.string().optional(),
|
|
5916
|
+
timeout: zod.z.number().int().nonnegative().max(12e4).optional()
|
|
5917
|
+
}).optional(),
|
|
5918
|
+
keenableScraperOptions: zod.z.object({
|
|
5919
|
+
attributionTitle: zod.z.string().optional(),
|
|
5920
|
+
timeout: zod.z.number().int().nonnegative().max(12e4).optional()
|
|
4676
5921
|
}).optional()
|
|
4677
5922
|
});
|
|
4678
5923
|
const ocrSchema = zod.z.object({
|
|
@@ -4760,13 +6005,6 @@ const summarizationConfigSchema = zod.z.object({
|
|
|
4760
6005
|
retainRecent: retainRecentConfigSchema.optional()
|
|
4761
6006
|
});
|
|
4762
6007
|
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
6008
|
let messageFilterRegexValidator = (value) => {
|
|
4771
6009
|
try {
|
|
4772
6010
|
new RegExp(value, "g");
|
|
@@ -4779,28 +6017,134 @@ const setMessageFilterRegexValidator = (validate) => {
|
|
|
4779
6017
|
messageFilterRegexValidator = validate;
|
|
4780
6018
|
};
|
|
4781
6019
|
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).
|
|
6020
|
+
id: zod.z.string().min(1).max(256),
|
|
6021
|
+
label: zod.z.string().min(1).max(512),
|
|
6022
|
+
regex: zod.z.string().min(1).max(512)
|
|
4785
6023
|
});
|
|
4786
6024
|
const messageFilterPiiSchema = zod.z.object({
|
|
4787
|
-
starterPatterns: zod.z.array(zod.z.string()).optional(),
|
|
4788
|
-
customPatterns: zod.z.array(messageFilterPiiCustomPatternSchema).optional()
|
|
6025
|
+
starterPatterns: zod.z.array(zod.z.string().max(256)).max(256).optional(),
|
|
6026
|
+
customPatterns: zod.z.array(messageFilterPiiCustomPatternSchema).max(256).optional()
|
|
6027
|
+
}).superRefine((pii, context) => {
|
|
6028
|
+
let regexCharacters = 0;
|
|
6029
|
+
let regexInstructions = 0;
|
|
6030
|
+
for (let index = 0; index < (pii.customPatterns?.length ?? 0); index++) {
|
|
6031
|
+
const pattern = pii.customPatterns?.[index];
|
|
6032
|
+
if (pattern == null) continue;
|
|
6033
|
+
regexCharacters += pattern.regex.length;
|
|
6034
|
+
const result = messageFilterRegexValidator(pattern.regex);
|
|
6035
|
+
if (!(typeof result === "boolean" ? result : result.supported)) {
|
|
6036
|
+
context.addIssue({
|
|
6037
|
+
code: zod.z.ZodIssueCode.custom,
|
|
6038
|
+
path: [
|
|
6039
|
+
"customPatterns",
|
|
6040
|
+
index,
|
|
6041
|
+
"regex"
|
|
6042
|
+
],
|
|
6043
|
+
message: "Unsupported regex: not compatible with the RE2 engine (no backreferences, lookaround, or control escapes)"
|
|
6044
|
+
});
|
|
6045
|
+
continue;
|
|
6046
|
+
}
|
|
6047
|
+
if (typeof result !== "boolean" && result.programSize != null) regexInstructions += result.programSize;
|
|
6048
|
+
}
|
|
6049
|
+
if (regexCharacters > 8192) context.addIssue({
|
|
6050
|
+
code: zod.z.ZodIssueCode.custom,
|
|
6051
|
+
path: ["customPatterns"],
|
|
6052
|
+
message: `Custom PII regexes may contain at most ${MAX_PII_CUSTOM_REGEX_CHARACTERS} characters in total`
|
|
6053
|
+
});
|
|
6054
|
+
if (regexInstructions > 8192) context.addIssue({
|
|
6055
|
+
code: zod.z.ZodIssueCode.custom,
|
|
6056
|
+
path: ["customPatterns"],
|
|
6057
|
+
message: `Custom PII regexes may compile to at most ${MAX_PII_CUSTOM_REGEX_INSTRUCTIONS} instructions in total`
|
|
6058
|
+
});
|
|
4789
6059
|
});
|
|
4790
6060
|
const messageFilterSchema = zod.z.object({ pii: messageFilterPiiSchema.optional() });
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4796
|
-
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
-
|
|
4800
|
-
|
|
4801
|
-
|
|
4802
|
-
|
|
4803
|
-
|
|
6061
|
+
/** User fields a deployment may select as the Langfuse trace `userId`. */
|
|
6062
|
+
const LANGFUSE_TRACE_USER_ID_FIELDS = [
|
|
6063
|
+
"id",
|
|
6064
|
+
"email",
|
|
6065
|
+
"username",
|
|
6066
|
+
"name",
|
|
6067
|
+
"openidId",
|
|
6068
|
+
"samlId",
|
|
6069
|
+
"ldapId",
|
|
6070
|
+
"googleId",
|
|
6071
|
+
"githubId",
|
|
6072
|
+
"discordId",
|
|
6073
|
+
"appleId",
|
|
6074
|
+
"facebookId"
|
|
6075
|
+
];
|
|
6076
|
+
/** User fields a deployment may copy into Langfuse trace metadata. */
|
|
6077
|
+
const LANGFUSE_TRACE_USER_METADATA_FIELDS = [
|
|
6078
|
+
...LANGFUSE_TRACE_USER_ID_FIELDS,
|
|
6079
|
+
"role",
|
|
6080
|
+
"provider"
|
|
6081
|
+
];
|
|
6082
|
+
/** Request fields a deployment may copy into Langfuse trace metadata. */
|
|
6083
|
+
const LANGFUSE_TRACE_CONVERSATION_METADATA_FIELDS = [
|
|
6084
|
+
"conversationId",
|
|
6085
|
+
"endpoint",
|
|
6086
|
+
"endpointType",
|
|
6087
|
+
"provider",
|
|
6088
|
+
"model",
|
|
6089
|
+
"modelLabel",
|
|
6090
|
+
"spec"
|
|
6091
|
+
];
|
|
6092
|
+
/**
|
|
6093
|
+
* What a deployment attaches to every Langfuse trace beyond the defaults.
|
|
6094
|
+
* Nothing here is exported unless explicitly listed, so the default trace
|
|
6095
|
+
* carries only the internal user id and no user or request metadata.
|
|
6096
|
+
*/
|
|
6097
|
+
const langfuseTraceConfigSchema = zod.z.object({
|
|
6098
|
+
/**
|
|
6099
|
+
* Which user field becomes the trace `userId`. Defaults to the internal user
|
|
6100
|
+
* id; a user with no value for the chosen field keeps the internal id.
|
|
6101
|
+
*/
|
|
6102
|
+
userIdField: zod.z.enum(LANGFUSE_TRACE_USER_ID_FIELDS).optional(),
|
|
6103
|
+
/** User fields exported as `librechat.user.<field>` trace metadata. */
|
|
6104
|
+
userMetadataFields: zod.z.array(zod.z.enum(LANGFUSE_TRACE_USER_METADATA_FIELDS)).optional(),
|
|
6105
|
+
/**
|
|
6106
|
+
* Request fields exported as trace metadata: `librechat.conversation.id`,
|
|
6107
|
+
* `librechat.endpoint`, `librechat.endpoint.type`, `librechat.provider`,
|
|
6108
|
+
* `librechat.model`, `librechat.model.label`, and `librechat.spec`.
|
|
6109
|
+
*/
|
|
6110
|
+
conversationMetadataFields: zod.z.array(zod.z.enum(LANGFUSE_TRACE_CONVERSATION_METADATA_FIELDS)).optional()
|
|
6111
|
+
});
|
|
6112
|
+
const langfuseConfigSchema = zod.z.object({
|
|
6113
|
+
enabled: zod.z.boolean().optional(),
|
|
6114
|
+
publicKey: zod.z.string().optional(),
|
|
6115
|
+
secretKey: zod.z.string().optional(),
|
|
6116
|
+
/** Stable Langfuse project identity returned when credentials are verified. */
|
|
6117
|
+
projectId: zod.z.string().optional(),
|
|
6118
|
+
/** Masked preview of the secret key, stored at write time so
|
|
6119
|
+
* admin reads can show which secret key is configured without returning the secret. */
|
|
6120
|
+
secretKeyPreview: zod.z.string().optional(),
|
|
6121
|
+
/** Routing key for one of the deployment-configured tenant Langfuse destinations. */
|
|
6122
|
+
destination: zod.z.string().optional(),
|
|
6123
|
+
/**
|
|
6124
|
+
* Custom request headers sent on every outbound Langfuse request — trace and
|
|
6125
|
+
* media export, feedback scores, and credential verification — for
|
|
6126
|
+
* self-hosted instances behind an authenticating proxy or gateway. Values
|
|
6127
|
+
* support `${ENV_VAR}` interpolation.
|
|
6128
|
+
*
|
|
6129
|
+
* Deployment-level only. Trace export batches spans from every user through
|
|
6130
|
+
* one exporter, so unlike endpoint headers these cannot carry per-user
|
|
6131
|
+
* placeholders. Headers referencing an unset variable, naming an
|
|
6132
|
+
* infrastructure secret, or carrying an invalid HTTP field name are dropped
|
|
6133
|
+
* with a warning rather than sent.
|
|
6134
|
+
*
|
|
6135
|
+
* Sent only when the deployment configures exactly one Langfuse origin, and
|
|
6136
|
+
* only to that origin. The map cannot say which endpoint it authenticates
|
|
6137
|
+
* to, so with several configured origins any choice of recipient would risk
|
|
6138
|
+
* disclosing a gateway credential to the others; a warning is logged instead.
|
|
6139
|
+
* Multi-destination deployments need per-destination headers, which this
|
|
6140
|
+
* schema does not yet express — and note the fanout collector forwards only
|
|
6141
|
+
* `Authorization` upstream regardless.
|
|
6142
|
+
*/
|
|
6143
|
+
headers: zod.z.record(zod.z.string()).optional(),
|
|
6144
|
+
/** Trace user identity and allowlisted user/request metadata. */
|
|
6145
|
+
trace: langfuseTraceConfigSchema.optional()
|
|
6146
|
+
});
|
|
6147
|
+
const configSchema = zod.z.object({
|
|
4804
6148
|
version: zod.z.string(),
|
|
4805
6149
|
cache: zod.z.boolean().default(true),
|
|
4806
6150
|
ocr: ocrSchema.optional(),
|
|
@@ -4816,7 +6160,35 @@ const configSchema = zod.z.object({
|
|
|
4816
6160
|
mcpServers: MCPServersSchema.optional(),
|
|
4817
6161
|
mcpSettings: zod.z.object({
|
|
4818
6162
|
allowedDomains: zod.z.array(zod.z.string()).optional(),
|
|
4819
|
-
allowedAddresses: allowedAddressesSchema
|
|
6163
|
+
allowedAddresses: allowedAddressesSchema,
|
|
6164
|
+
catalogRecovery: zod.z.object({
|
|
6165
|
+
discoveryBackoffMs: zod.z.array(zod.z.number().int().positive().max(1440 * 6e4)).min(1).max(8).default([
|
|
6166
|
+
5 * 6e4,
|
|
6167
|
+
10 * 6e4,
|
|
6168
|
+
20 * 6e4,
|
|
6169
|
+
30 * 6e4
|
|
6170
|
+
]),
|
|
6171
|
+
discoveryTimeoutMs: zod.z.number().int().positive().max(5 * 6e4).default(3e3),
|
|
6172
|
+
/** How long past `discoveryTimeoutMs` a stalled discovery may hold its catalog slot and
|
|
6173
|
+
* coalesced requests. It is never cancelled, so OAuth tokens it redeemed still persist,
|
|
6174
|
+
* and no other discovery for the same server state starts until it settles. */
|
|
6175
|
+
discoverySettleGraceMs: zod.z.number().int().nonnegative().max(5 * 6e4).default(1e4),
|
|
6176
|
+
reauthRetryMs: zod.z.number().int().positive().max(1440 * 6e4).default(30 * 6e4),
|
|
6177
|
+
maxStateEntries: zod.z.number().int().positive().max(1e6).default(1e4),
|
|
6178
|
+
/** Process-wide: how many discoveries released past `discoverySettleGraceMs` may still be
|
|
6179
|
+
* running before recovery starts no new discovery until one settles. The default matches
|
|
6180
|
+
* the three catalog slots a stalled dependency could hold before discoveries were released. */
|
|
6181
|
+
maxDetachedDiscoveries: zod.z.number().int().positive().max(1e3).default(3),
|
|
6182
|
+
generationReadTimeoutMs: zod.z.number().int().positive().max(1e4).default(500),
|
|
6183
|
+
authorizationFenceRetryMs: zod.z.array(zod.z.number().int().nonnegative().max(6e4)).min(1).max(8).default([
|
|
6184
|
+
0,
|
|
6185
|
+
50,
|
|
6186
|
+
200
|
|
6187
|
+
]),
|
|
6188
|
+
authorizationFenceTimeoutMs: zod.z.number().int().positive().max(3e4).default(1e3),
|
|
6189
|
+
authorizationFenceRetryIntervalMs: zod.z.number().int().positive().max(60 * 6e4).default(3e4),
|
|
6190
|
+
authorizationFenceRetryBatchSize: zod.z.number().int().positive().max(1e4).default(100)
|
|
6191
|
+
}).default({})
|
|
4820
6192
|
}).optional(),
|
|
4821
6193
|
interface: interfaceSchema,
|
|
4822
6194
|
turnstile: turnstileSchema.optional(),
|
|
@@ -4841,6 +6213,7 @@ const configSchema = zod.z.object({
|
|
|
4841
6213
|
rateLimits: rateLimitSchema.optional(),
|
|
4842
6214
|
fileConfig: fileConfigSchema.optional(),
|
|
4843
6215
|
modelSpecs: specsConfigSchema.optional(),
|
|
6216
|
+
filters: filtersConfigSchema.optional(),
|
|
4844
6217
|
messageFilter: messageFilterSchema.optional(),
|
|
4845
6218
|
endpoints: zod.z.object({
|
|
4846
6219
|
allowedAddresses: allowedAddressesSchema,
|
|
@@ -4874,6 +6247,7 @@ let KnownEndpoints = /* @__PURE__ */ function(KnownEndpoints) {
|
|
|
4874
6247
|
KnownEndpoints["groq"] = "groq";
|
|
4875
6248
|
KnownEndpoints["helicone"] = "helicone";
|
|
4876
6249
|
KnownEndpoints["huggingface"] = "huggingface";
|
|
6250
|
+
KnownEndpoints["lemonade"] = "lemonade";
|
|
4877
6251
|
KnownEndpoints["mistral"] = "mistral";
|
|
4878
6252
|
KnownEndpoints["mlx"] = "mlx";
|
|
4879
6253
|
KnownEndpoints["ollama"] = "ollama";
|
|
@@ -4912,6 +6286,7 @@ const alternateName = {
|
|
|
4912
6286
|
["anthropic"]: "Anthropic",
|
|
4913
6287
|
["custom"]: "Custom",
|
|
4914
6288
|
["bedrock"]: "AWS Bedrock",
|
|
6289
|
+
["lemonade"]: "AMD Lemonade",
|
|
4915
6290
|
["ollama"]: "Ollama",
|
|
4916
6291
|
["deepseek"]: "DeepSeek",
|
|
4917
6292
|
["moonshot"]: "Moonshot",
|
|
@@ -4919,6 +6294,14 @@ const alternateName = {
|
|
|
4919
6294
|
["vercel"]: "Vercel",
|
|
4920
6295
|
["helicone"]: "Helicone"
|
|
4921
6296
|
};
|
|
6297
|
+
/**
|
|
6298
|
+
* Models the Assistants endpoints cannot run. GPT-6 Astra serves tool calls only
|
|
6299
|
+
* from the Responses API, and the Assistants surface does not route through
|
|
6300
|
+
* `getOpenAILLMConfig`, so listing it there would offer a configuration the
|
|
6301
|
+
* provider rejects. Kept out of `sharedOpenAIModels`, which both Assistants
|
|
6302
|
+
* catalogs consume.
|
|
6303
|
+
*/
|
|
6304
|
+
const responsesOnlyOpenAIModels = ["gpt-6-astra"];
|
|
4922
6305
|
const sharedOpenAIModels = [
|
|
4923
6306
|
"gpt-5.6",
|
|
4924
6307
|
"gpt-5.6-terra",
|
|
@@ -4946,6 +6329,7 @@ const sharedOpenAIModels = [
|
|
|
4946
6329
|
"gpt-4o"
|
|
4947
6330
|
];
|
|
4948
6331
|
const sharedAnthropicModels = [
|
|
6332
|
+
"claude-fable-5-1",
|
|
4949
6333
|
"claude-fable-5",
|
|
4950
6334
|
"claude-opus-5",
|
|
4951
6335
|
"claude-opus-4-8",
|
|
@@ -4980,6 +6364,7 @@ const sharedAnthropicModels = [
|
|
|
4980
6364
|
* availability); Opus 4.1 has no global profile, so it uses `us.`.
|
|
4981
6365
|
*/
|
|
4982
6366
|
const bedrockModels = [
|
|
6367
|
+
"global.anthropic.claude-fable-5-1",
|
|
4983
6368
|
"global.anthropic.claude-fable-5",
|
|
4984
6369
|
"global.anthropic.claude-opus-5",
|
|
4985
6370
|
"global.anthropic.claude-opus-4-8",
|
|
@@ -5012,8 +6397,9 @@ const bedrockModels = [
|
|
|
5012
6397
|
const defaultModels = {
|
|
5013
6398
|
["azureAssistants"]: sharedOpenAIModels,
|
|
5014
6399
|
["assistants"]: [...sharedOpenAIModels, "chatgpt-4o-latest"],
|
|
5015
|
-
["agents"]: sharedOpenAIModels,
|
|
6400
|
+
["agents"]: [...responsesOnlyOpenAIModels, ...sharedOpenAIModels],
|
|
5016
6401
|
["google"]: [
|
|
6402
|
+
"gemini-3.8-flash",
|
|
5017
6403
|
"gemini-3.7-flash",
|
|
5018
6404
|
"gemini-3.6-flash",
|
|
5019
6405
|
"gemini-3.5-flash",
|
|
@@ -5029,6 +6415,7 @@ const defaultModels = {
|
|
|
5029
6415
|
],
|
|
5030
6416
|
["anthropic"]: sharedAnthropicModels,
|
|
5031
6417
|
["openAI"]: [
|
|
6418
|
+
...responsesOnlyOpenAIModels,
|
|
5032
6419
|
...sharedOpenAIModels,
|
|
5033
6420
|
"chatgpt-4o-latest",
|
|
5034
6421
|
"gpt-4-vision-preview",
|
|
@@ -5041,12 +6428,19 @@ const fitlerAssistantModels = (str) => {
|
|
|
5041
6428
|
return /gpt-4|gpt-3\\.5/i.test(str) && !/vision|instruct/i.test(str);
|
|
5042
6429
|
};
|
|
5043
6430
|
const openAIModels = defaultModels["openAI"];
|
|
6431
|
+
/**
|
|
6432
|
+
* The OpenAI catalog without the models only the first-party OpenAI endpoint
|
|
6433
|
+
* can run. Azure OpenAI shares this list, but Astra is neither routed to the
|
|
6434
|
+
* Responses API nor given its request constraints there, and listing it first
|
|
6435
|
+
* would let it become the default selection.
|
|
6436
|
+
*/
|
|
6437
|
+
const nonResponsesOnlyOpenAIModels = openAIModels.filter((model) => !responsesOnlyOpenAIModels.includes(model));
|
|
5044
6438
|
const initialModelsConfig = {
|
|
5045
6439
|
initial: [],
|
|
5046
6440
|
["openAI"]: openAIModels,
|
|
5047
6441
|
["assistants"]: openAIModels.filter(fitlerAssistantModels),
|
|
5048
6442
|
["agents"]: openAIModels,
|
|
5049
|
-
["azureOpenAI"]:
|
|
6443
|
+
["azureOpenAI"]: nonResponsesOnlyOpenAIModels,
|
|
5050
6444
|
["google"]: defaultModels["google"],
|
|
5051
6445
|
["anthropic"]: defaultModels["anthropic"],
|
|
5052
6446
|
["bedrock"]: defaultModels["bedrock"]
|
|
@@ -5181,6 +6575,10 @@ let CacheKeys = /* @__PURE__ */ function(CacheKeys) {
|
|
|
5181
6575
|
*/
|
|
5182
6576
|
CacheKeys["USER_PRINCIPALS"] = "USER_PRINCIPALS";
|
|
5183
6577
|
/**
|
|
6578
|
+
* Key for cached prompt group access ID sets (accessible, public, owned).
|
|
6579
|
+
*/
|
|
6580
|
+
CacheKeys["PROMPT_GROUPS_ACCESS"] = "PROMPT_GROUPS_ACCESS";
|
|
6581
|
+
/**
|
|
5184
6582
|
* Key for per-conversation stateful code sandbox prewarm/warm state.
|
|
5185
6583
|
*/
|
|
5186
6584
|
CacheKeys["SANDBOX_PREWARM"] = "SANDBOX_PREWARM";
|
|
@@ -5340,6 +6738,10 @@ let ViolationTypes = /* @__PURE__ */ function(ViolationTypes) {
|
|
|
5340
6738
|
* Registration violations.
|
|
5341
6739
|
*/
|
|
5342
6740
|
ViolationTypes["REGISTRATIONS"] = "registrations";
|
|
6741
|
+
/**
|
|
6742
|
+
* Shared link retrieval limit violations.
|
|
6743
|
+
*/
|
|
6744
|
+
ViolationTypes["SHARE_LIMIT"] = "share_limit";
|
|
5343
6745
|
return ViolationTypes;
|
|
5344
6746
|
}({});
|
|
5345
6747
|
/**
|
|
@@ -5403,6 +6805,14 @@ let ErrorTypes = /* @__PURE__ */ function(ErrorTypes) {
|
|
|
5403
6805
|
*/
|
|
5404
6806
|
ErrorTypes["RESOURCE_RECOVERY_REQUIRED"] = "resource_recovery_required";
|
|
5405
6807
|
/**
|
|
6808
|
+
* Agent selected a stateful Code API workspace scope disabled by the deployment.
|
|
6809
|
+
*/
|
|
6810
|
+
ErrorTypes["STATEFUL_CODE_ENVIRONMENT_NOT_ALLOWED"] = "stateful_code_environment_not_allowed";
|
|
6811
|
+
/**
|
|
6812
|
+
* A conversation's selected attached workspace cannot be used as requested.
|
|
6813
|
+
*/
|
|
6814
|
+
ErrorTypes["CODE_WORKSPACE_UNAVAILABLE"] = "code_workspace_unavailable";
|
|
6815
|
+
/**
|
|
5406
6816
|
* Invalid Agent Provider (excluded by Admin)
|
|
5407
6817
|
*/
|
|
5408
6818
|
ErrorTypes["INVALID_AGENT_PROVIDER"] = "invalid_agent_provider";
|
|
@@ -5423,6 +6833,14 @@ let ErrorTypes = /* @__PURE__ */ function(ErrorTypes) {
|
|
|
5423
6833
|
*/
|
|
5424
6834
|
ErrorTypes["AUTH_FAILED"] = "auth_failed";
|
|
5425
6835
|
/**
|
|
6836
|
+
* Authentication rejected by a rate limiter
|
|
6837
|
+
*/
|
|
6838
|
+
ErrorTypes["AUTH_RATE_LIMITED"] = "auth_rate_limited";
|
|
6839
|
+
/**
|
|
6840
|
+
* Authentication rejected because the account or IP is banned
|
|
6841
|
+
*/
|
|
6842
|
+
ErrorTypes["AUTH_BANNED"] = "auth_banned";
|
|
6843
|
+
/**
|
|
5426
6844
|
* Model refused to respond (content policy violation)
|
|
5427
6845
|
*/
|
|
5428
6846
|
ErrorTypes["REFUSAL"] = "refusal";
|
|
@@ -5430,6 +6848,34 @@ let ErrorTypes = /* @__PURE__ */ function(ErrorTypes) {
|
|
|
5430
6848
|
* SSE stream 404 — job completed, expired, or was deleted before the subscriber connected
|
|
5431
6849
|
*/
|
|
5432
6850
|
ErrorTypes["STREAM_EXPIRED"] = "stream_expired";
|
|
6851
|
+
/**
|
|
6852
|
+
* Provider does not serve the requested model
|
|
6853
|
+
*/
|
|
6854
|
+
ErrorTypes["MODEL_NOT_FOUND"] = "model_not_found";
|
|
6855
|
+
/**
|
|
6856
|
+
* Provider throttled or refused the request for exceeding a rate/spend allowance
|
|
6857
|
+
*/
|
|
6858
|
+
ErrorTypes["MODEL_RATE_LIMIT"] = "model_rate_limit";
|
|
6859
|
+
/**
|
|
6860
|
+
* An agent model provider failed and the run could not recover.
|
|
6861
|
+
*/
|
|
6862
|
+
ErrorTypes["UPSTREAM_MODEL_ERROR"] = "upstream_model_error";
|
|
6863
|
+
/**
|
|
6864
|
+
* Context pruning removed every message; nothing fits the configured context window
|
|
6865
|
+
*/
|
|
6866
|
+
ErrorTypes["EMPTY_MESSAGES"] = "empty_messages";
|
|
6867
|
+
/**
|
|
6868
|
+
* Formatted provider payload exceeded the context budget before invocation
|
|
6869
|
+
*/
|
|
6870
|
+
ErrorTypes["FINAL_CONTEXT_OVERFLOW"] = "final_context_overflow";
|
|
6871
|
+
/**
|
|
6872
|
+
* A manual compaction the graph could not attempt; `reason` says why
|
|
6873
|
+
*/
|
|
6874
|
+
ErrorTypes["COMPACTION_SKIPPED"] = "compaction_skipped";
|
|
6875
|
+
/**
|
|
6876
|
+
* A manual compaction whose summarizer produced nothing; history is untouched
|
|
6877
|
+
*/
|
|
6878
|
+
ErrorTypes["COMPACTION_FAILED"] = "compaction_failed";
|
|
5433
6879
|
return ErrorTypes;
|
|
5434
6880
|
}({});
|
|
5435
6881
|
/**
|
|
@@ -5561,7 +7007,7 @@ let TTSProviders = /* @__PURE__ */ function(TTSProviders) {
|
|
|
5561
7007
|
/** Enum for app-wide constants */
|
|
5562
7008
|
let Constants = /* @__PURE__ */ function(Constants) {
|
|
5563
7009
|
/**
|
|
5564
|
-
* Key for the app's version. The placeholder `v0.8.8-
|
|
7010
|
+
* Key for the app's version. The placeholder `v0.8.8-rc3` is
|
|
5565
7011
|
* swapped in by `@rollup/plugin-replace` during `npm run build:data-provider`
|
|
5566
7012
|
* using the value of the root `package.json`'s `version` field. Consumers
|
|
5567
7013
|
* always import this via the built dist bundle (see `main` field in
|
|
@@ -5569,9 +7015,9 @@ let Constants = /* @__PURE__ */ function(Constants) {
|
|
|
5569
7015
|
* substituted value. Only tests that import the TypeScript source directly
|
|
5570
7016
|
* would observe the raw placeholder.
|
|
5571
7017
|
*/
|
|
5572
|
-
Constants["VERSION"] = "v0.8.8-
|
|
7018
|
+
Constants["VERSION"] = "v0.8.8-rc3";
|
|
5573
7019
|
/** Key for the Custom Config's version (librechat.yaml). */
|
|
5574
|
-
Constants["CONFIG_VERSION"] = "1.3.
|
|
7020
|
+
Constants["CONFIG_VERSION"] = "1.3.16";
|
|
5575
7021
|
/** Standard value for the first message's `parentMessageId` value, to indicate no parent exists. */
|
|
5576
7022
|
Constants["NO_PARENT"] = "00000000-0000-0000-0000-000000000000";
|
|
5577
7023
|
/** Standard value to use whatever the submission prelim. `responseMessageId` is */
|
|
@@ -5625,6 +7071,15 @@ let Constants = /* @__PURE__ */ function(Constants) {
|
|
|
5625
7071
|
Constants["SUBAGENT"] = "subagent";
|
|
5626
7072
|
/** Poll tool for retrieving the status/result of a backgrounded tool call. */
|
|
5627
7073
|
Constants["CHECK_BACKGROUND_TASK"] = "check_background_task";
|
|
7074
|
+
/**
|
|
7075
|
+
* `finish_reason` stamped on an assistant message whose turn ended because the
|
|
7076
|
+
* agent exhausted its per-turn graph step budget (`recursionLimit`) rather than
|
|
7077
|
+
* because the model chose to stop. Distinct from a user abort: nothing failed and
|
|
7078
|
+
* nothing was cancelled, the turn simply ran out of room. The UI keys its
|
|
7079
|
+
* "tool call limit reached" notice off this value. The hover Continue control
|
|
7080
|
+
* is withheld for this reason because the notice already offers the way forward.
|
|
7081
|
+
*/
|
|
7082
|
+
Constants["TOOL_CALL_LIMIT_FINISH_REASON"] = "tool_call_limit";
|
|
5628
7083
|
return Constants;
|
|
5629
7084
|
}({});
|
|
5630
7085
|
/**
|
|
@@ -5711,6 +7166,95 @@ function normalizeMCPToolKey(toolKey, rawServerNames) {
|
|
|
5711
7166
|
if (normalized === matched) return toolKey;
|
|
5712
7167
|
return `${toolKey.slice(0, toolKey.length - matched.length)}${normalized}`;
|
|
5713
7168
|
}
|
|
7169
|
+
/**
|
|
7170
|
+
* Strips a redundant leading server-name prefix from a raw upstream tool name
|
|
7171
|
+
* before it is embedded into a model-facing key, so the key doesn't carry the
|
|
7172
|
+
* server twice (`acme_trace_..._mcp_acme`) and push long tool names
|
|
7173
|
+
* past provider function-name limits (64 chars). The match is case-insensitive
|
|
7174
|
+
* because display-cased server names ("Acme") conventionally prefix their
|
|
7175
|
+
* tools in lowercase. Ingestion that strips must record the original name
|
|
7176
|
+
* (`serverToolName` on the cached definition) — tool calls send THAT name back
|
|
7177
|
+
* to the server, never the stripped one. Catalog producers must not call this
|
|
7178
|
+
* directly: only {@link stripServerNamePrefixes} sees the whole sibling set and
|
|
7179
|
+
* can keep colliding results apart.
|
|
7180
|
+
*/
|
|
7181
|
+
function stripServerNamePrefix(toolName, normalizedServerName) {
|
|
7182
|
+
const prefixLength = normalizedServerName.length + 1;
|
|
7183
|
+
if (toolName.length <= prefixLength) return toolName;
|
|
7184
|
+
if (toolName.slice(0, prefixLength).toLowerCase() !== `${normalizedServerName.toLowerCase()}_`) return toolName;
|
|
7185
|
+
const stripped = toolName.slice(prefixLength);
|
|
7186
|
+
if (isReservedMCPToolName(stripped)) return toolName;
|
|
7187
|
+
/** `isActionTool` classifies keys by the RELATIVE position of `_action_`
|
|
7188
|
+
* and `_mcp_`; stripping moves the first `_mcp_` earlier, so a server
|
|
7189
|
+
* whose normalized name contains `_action_` could see a real MCP tool
|
|
7190
|
+
* reclassified as an OpenAPI action (bypassing MCP authorization). Never
|
|
7191
|
+
* produce a key whose classification differs from the raw key's. */
|
|
7192
|
+
const keySuffix = `_mcp_${normalizedServerName}`;
|
|
7193
|
+
if (isActionTool(`${stripped}${keySuffix}`) !== isActionTool(`${toolName}${keySuffix}`)) return toolName;
|
|
7194
|
+
return stripped;
|
|
7195
|
+
}
|
|
7196
|
+
/**
|
|
7197
|
+
* Synthetic markers consumed by prefix (`isMCPAllPlaceholder`, the server-pin
|
|
7198
|
+
* skip, the client's OAuth stream classification), so each reserves BOTH its
|
|
7199
|
+
* exact name and its `${marker}${mcp_delimiter}` namespace: a stripped
|
|
7200
|
+
* remainder inside any of them would turn a real upstream tool into the
|
|
7201
|
+
* server-wide wildcard, the UI pin placeholder, or a synthetic OAuth call.
|
|
7202
|
+
*/
|
|
7203
|
+
const RESERVED_MCP_TOOL_MARKERS = [
|
|
7204
|
+
`sys__all__sys`,
|
|
7205
|
+
`sys__server__sys`,
|
|
7206
|
+
"oauth"
|
|
7207
|
+
];
|
|
7208
|
+
function isReservedMCPToolName(toolName) {
|
|
7209
|
+
/** `mcp_` opens the server-scoped pluginKey namespace (`mcp_${serverName}`),
|
|
7210
|
+
* and `lc_transfer_to_` opens the agent-handoff namespace (the client
|
|
7211
|
+
* renders such calls as handoffs; the background and intent passes exclude
|
|
7212
|
+
* them) — pre-strip tool keys could never enter either, since they always
|
|
7213
|
+
* began with the server name itself. */
|
|
7214
|
+
if (toolName.startsWith(`mcp_`) || toolName.startsWith(`lc_transfer_to_`)) return true;
|
|
7215
|
+
return RESERVED_MCP_TOOL_MARKERS.some((marker) => toolName === marker || toolName.startsWith(`${marker}_mcp_`));
|
|
7216
|
+
}
|
|
7217
|
+
/**
|
|
7218
|
+
* Maps every raw tool name in a server's catalog to its model-facing name,
|
|
7219
|
+
* stripping redundant server-name prefixes collision-free: when two names
|
|
7220
|
+
* yield the same result — a bare `foo` next to `<server>_foo`, or the
|
|
7221
|
+
* case-variant pair `<server>_Foo` / `<Server>_Foo` under the case-insensitive
|
|
7222
|
+
* prefix match — every collider keeps its raw name, so two distinct upstream
|
|
7223
|
+
* tools can never collapse onto one key. Unprefixed names count against the
|
|
7224
|
+
* result set through their identity mapping, which is what makes the bare-name
|
|
7225
|
+
* case fall out of the same counter.
|
|
7226
|
+
*/
|
|
7227
|
+
function stripServerNamePrefixes(toolNames, normalizedServerName) {
|
|
7228
|
+
const rawNames = new Set(toolNames);
|
|
7229
|
+
const finalNames = new Map(toolNames.map((name) => {
|
|
7230
|
+
const stripped = stripServerNamePrefix(name, normalizedServerName);
|
|
7231
|
+
/** Every sibling's RAW name is reserved even when that sibling itself
|
|
7232
|
+
* strips away: keys persisted BEFORE stripping embed raw names, so a
|
|
7233
|
+
* stripped result landing on another sibling's raw name would route
|
|
7234
|
+
* that sibling's legacy references to the wrong upstream tool. */
|
|
7235
|
+
return [name, stripped !== name && rawNames.has(stripped) ? name : stripped];
|
|
7236
|
+
}));
|
|
7237
|
+
/** Reverting a collider to its raw name can itself collide with ANOTHER
|
|
7238
|
+
* sibling's stripped result (`foo` / `acme_foo` / `acme_acme_foo`), so the
|
|
7239
|
+
* guard iterates to a fixpoint. Each pass converts at least one stripped
|
|
7240
|
+
* result back to its unique raw name, so it terminates within the catalog
|
|
7241
|
+
* size. */
|
|
7242
|
+
let changed = true;
|
|
7243
|
+
while (changed) {
|
|
7244
|
+
changed = false;
|
|
7245
|
+
const counts = /* @__PURE__ */ new Map();
|
|
7246
|
+
finalNames.forEach((result) => {
|
|
7247
|
+
counts.set(result, (counts.get(result) ?? 0) + 1);
|
|
7248
|
+
});
|
|
7249
|
+
finalNames.forEach((result, raw) => {
|
|
7250
|
+
if (result !== raw && (counts.get(result) ?? 0) > 1) {
|
|
7251
|
+
finalNames.set(raw, raw);
|
|
7252
|
+
changed = true;
|
|
7253
|
+
}
|
|
7254
|
+
});
|
|
7255
|
+
}
|
|
7256
|
+
return finalNames;
|
|
7257
|
+
}
|
|
5714
7258
|
function splitMCPToolKey(toolKey, knownServerNames) {
|
|
5715
7259
|
if (knownServerNames?.length) {
|
|
5716
7260
|
let matched;
|
|
@@ -5930,6 +7474,7 @@ let PrincipalModel = /* @__PURE__ */ function(PrincipalModel) {
|
|
|
5930
7474
|
*/
|
|
5931
7475
|
let ResourceType = /* @__PURE__ */ function(ResourceType) {
|
|
5932
7476
|
ResourceType["AGENT"] = "agent";
|
|
7477
|
+
ResourceType["CODE_ENVIRONMENT"] = "codeEnvironment";
|
|
5933
7478
|
ResourceType["PROMPTGROUP"] = "promptGroup";
|
|
5934
7479
|
ResourceType["MCPSERVER"] = "mcpServer";
|
|
5935
7480
|
ResourceType["REMOTE_AGENT"] = "remoteAgent";
|
|
@@ -5949,6 +7494,8 @@ let PermissionBits = /* @__PURE__ */ function(PermissionBits) {
|
|
|
5949
7494
|
PermissionBits[PermissionBits["DELETE"] = 4] = "DELETE";
|
|
5950
7495
|
/** 1000 - Can share agent with others (future) */
|
|
5951
7496
|
PermissionBits[PermissionBits["SHARE"] = 8] = "SHARE";
|
|
7497
|
+
/** 10000 - Can view Insights data for an agent when VIEW is also present */
|
|
7498
|
+
PermissionBits[PermissionBits["VIEW_INSIGHTS"] = 16] = "VIEW_INSIGHTS";
|
|
5952
7499
|
return PermissionBits;
|
|
5953
7500
|
}({});
|
|
5954
7501
|
/**
|
|
@@ -5958,6 +7505,9 @@ let AccessRoleIds = /* @__PURE__ */ function(AccessRoleIds) {
|
|
|
5958
7505
|
AccessRoleIds["AGENT_VIEWER"] = "agent_viewer";
|
|
5959
7506
|
AccessRoleIds["AGENT_EDITOR"] = "agent_editor";
|
|
5960
7507
|
AccessRoleIds["AGENT_OWNER"] = "agent_owner";
|
|
7508
|
+
AccessRoleIds["CODE_ENVIRONMENT_VIEWER"] = "codeEnvironment_viewer";
|
|
7509
|
+
AccessRoleIds["CODE_ENVIRONMENT_EDITOR"] = "codeEnvironment_editor";
|
|
7510
|
+
AccessRoleIds["CODE_ENVIRONMENT_OWNER"] = "codeEnvironment_owner";
|
|
5961
7511
|
AccessRoleIds["PROMPTGROUP_VIEWER"] = "promptGroup_viewer";
|
|
5962
7512
|
AccessRoleIds["PROMPTGROUP_EDITOR"] = "promptGroup_editor";
|
|
5963
7513
|
AccessRoleIds["PROMPTGROUP_OWNER"] = "promptGroup_owner";
|
|
@@ -5987,6 +7537,8 @@ const principalSchema = zod.z.object({
|
|
|
5987
7537
|
description: zod.z.string().optional(),
|
|
5988
7538
|
idOnTheSource: zod.z.string().optional(),
|
|
5989
7539
|
accessRoleId: zod.z.nativeEnum(AccessRoleIds).optional(),
|
|
7540
|
+
viewInsights: zod.z.boolean().optional(),
|
|
7541
|
+
isAdmin: zod.z.boolean().optional(),
|
|
5990
7542
|
memberCount: zod.z.number().optional()
|
|
5991
7543
|
});
|
|
5992
7544
|
/**
|
|
@@ -6074,17 +7626,20 @@ function permBitsToAccessLevel(permBits) {
|
|
|
6074
7626
|
function accessRoleToPermBits(accessRoleId) {
|
|
6075
7627
|
switch (accessRoleId) {
|
|
6076
7628
|
case "agent_viewer":
|
|
7629
|
+
case "codeEnvironment_viewer":
|
|
6077
7630
|
case "promptGroup_viewer":
|
|
6078
7631
|
case "mcpServer_viewer":
|
|
6079
7632
|
case "remoteAgent_viewer":
|
|
6080
7633
|
case "skill_viewer":
|
|
6081
7634
|
case "sharedLink_viewer": return 1;
|
|
6082
7635
|
case "agent_editor":
|
|
7636
|
+
case "codeEnvironment_editor":
|
|
6083
7637
|
case "promptGroup_editor":
|
|
6084
7638
|
case "mcpServer_editor":
|
|
6085
7639
|
case "remoteAgent_editor":
|
|
6086
7640
|
case "skill_editor": return 3;
|
|
6087
7641
|
case "agent_owner":
|
|
7642
|
+
case "codeEnvironment_owner":
|
|
6088
7643
|
case "promptGroup_owner":
|
|
6089
7644
|
case "mcpServer_owner":
|
|
6090
7645
|
case "remoteAgent_owner":
|
|
@@ -6111,11 +7666,15 @@ let QueryKeys = /* @__PURE__ */ function(QueryKeys) {
|
|
|
6111
7666
|
QueryKeys["sharedLinks"] = "sharedLinks";
|
|
6112
7667
|
QueryKeys["allConversations"] = "allConversations";
|
|
6113
7668
|
QueryKeys["archivedConversations"] = "archivedConversations";
|
|
7669
|
+
QueryKeys["pinnedConversations"] = "pinnedConversations";
|
|
6114
7670
|
QueryKeys["searchConversations"] = "searchConversations";
|
|
6115
7671
|
QueryKeys["conversation"] = "conversation";
|
|
6116
7672
|
QueryKeys["searchEnabled"] = "searchEnabled";
|
|
6117
7673
|
QueryKeys["langfuseConnection"] = "langfuseConnection";
|
|
6118
7674
|
QueryKeys["langfuseSessionLink"] = "langfuseSessionLink";
|
|
7675
|
+
QueryKeys["conversationTraceAvailability"] = "conversationTraceAvailability";
|
|
7676
|
+
QueryKeys["conversationTraceRecords"] = "conversationTraceRecords";
|
|
7677
|
+
QueryKeys["conversationTraceRecord"] = "conversationTraceRecord";
|
|
6119
7678
|
QueryKeys["user"] = "user";
|
|
6120
7679
|
QueryKeys["name"] = "name";
|
|
6121
7680
|
QueryKeys["models"] = "models";
|
|
@@ -6127,6 +7686,8 @@ let QueryKeys = /* @__PURE__ */ function(QueryKeys) {
|
|
|
6127
7686
|
QueryKeys["tokenCount"] = "tokenCount";
|
|
6128
7687
|
QueryKeys["availablePlugins"] = "availablePlugins";
|
|
6129
7688
|
QueryKeys["startupConfig"] = "startupConfig";
|
|
7689
|
+
QueryKeys["insights"] = "insights";
|
|
7690
|
+
QueryKeys["insightsAccess"] = "insightsAccess";
|
|
6130
7691
|
QueryKeys["assistants"] = "assistants";
|
|
6131
7692
|
QueryKeys["assistant"] = "assistant";
|
|
6132
7693
|
QueryKeys["agents"] = "agents";
|
|
@@ -6184,10 +7745,32 @@ let QueryKeys = /* @__PURE__ */ function(QueryKeys) {
|
|
|
6184
7745
|
QueryKeys["toolFavorites"] = "toolFavorites";
|
|
6185
7746
|
QueryKeys["skillStates"] = "skillStates";
|
|
6186
7747
|
QueryKeys["favorites"] = "favorites";
|
|
7748
|
+
QueryKeys["schedules"] = "schedules";
|
|
7749
|
+
QueryKeys["schedule"] = "schedule";
|
|
7750
|
+
QueryKeys["parentSubagents"] = "parentSubagents";
|
|
7751
|
+
QueryKeys["subagentThread"] = "subagentThread";
|
|
7752
|
+
QueryKeys["codeEnvironments"] = "codeEnvironments";
|
|
7753
|
+
QueryKeys["agentQueuedTurns"] = "agentQueuedTurns";
|
|
7754
|
+
QueryKeys["pinnedOrder"] = "pinnedOrder";
|
|
6187
7755
|
return QueryKeys;
|
|
6188
7756
|
}({});
|
|
6189
|
-
const DynamicQueryKeys = {
|
|
7757
|
+
const DynamicQueryKeys = {
|
|
7758
|
+
agentFiles: (agentId) => ["agentFiles", agentId],
|
|
7759
|
+
codeEnvironmentStatus: (id) => [
|
|
7760
|
+
"codeEnvironments",
|
|
7761
|
+
id,
|
|
7762
|
+
"status"
|
|
7763
|
+
]
|
|
7764
|
+
};
|
|
6190
7765
|
let MutationKeys = /* @__PURE__ */ function(MutationKeys) {
|
|
7766
|
+
MutationKeys["subagentControl"] = "subagentControl";
|
|
7767
|
+
MutationKeys["enqueueAgentQueuedTurn"] = "enqueueAgentQueuedTurn";
|
|
7768
|
+
MutationKeys["cancelAgentQueuedTurn"] = "cancelAgentQueuedTurn";
|
|
7769
|
+
/** Whole-array favorites write, keyed so every hook instance's write is
|
|
7770
|
+
* visible to the others through the query client. */
|
|
7771
|
+
MutationKeys["updateFavorites"] = "updateFavorites";
|
|
7772
|
+
/** Pinned-section display order write, keyed for the same reason. */
|
|
7773
|
+
MutationKeys["updatePinnedOrder"] = "updatePinnedOrder";
|
|
6191
7774
|
MutationKeys["updateLangfuseConnection"] = "updateLangfuseConnection";
|
|
6192
7775
|
MutationKeys["testLangfuseConnection"] = "testLangfuseConnection";
|
|
6193
7776
|
MutationKeys["createAgentApiKey"] = "createAgentApiKey";
|
|
@@ -6211,6 +7794,7 @@ let MutationKeys = /* @__PURE__ */ function(MutationKeys) {
|
|
|
6211
7794
|
MutationKeys["deleteAgentAction"] = "deleteAgentAction";
|
|
6212
7795
|
MutationKeys["revertAgentVersion"] = "revertAgentVersion";
|
|
6213
7796
|
MutationKeys["deleteUser"] = "deleteUser";
|
|
7797
|
+
MutationKeys["updateUserPreferences"] = "updateUserPreferences";
|
|
6214
7798
|
MutationKeys["updateRole"] = "updateRole";
|
|
6215
7799
|
MutationKeys["enableTwoFactor"] = "enableTwoFactor";
|
|
6216
7800
|
MutationKeys["verifyTwoFactor"] = "verifyTwoFactor";
|
|
@@ -6224,6 +7808,14 @@ let MutationKeys = /* @__PURE__ */ function(MutationKeys) {
|
|
|
6224
7808
|
MutationKeys["deleteSkillNode"] = "deleteSkillNode";
|
|
6225
7809
|
MutationKeys["updateSkillNodeContent"] = "updateSkillNodeContent";
|
|
6226
7810
|
MutationKeys["convoPin"] = "convoPin";
|
|
7811
|
+
MutationKeys["archiveAllConversations"] = "archiveAllConversations";
|
|
7812
|
+
MutationKeys["createSchedule"] = "createSchedule";
|
|
7813
|
+
MutationKeys["updateSchedule"] = "updateSchedule";
|
|
7814
|
+
MutationKeys["deleteSchedule"] = "deleteSchedule";
|
|
7815
|
+
MutationKeys["runSchedule"] = "runSchedule";
|
|
7816
|
+
MutationKeys["pairCodeEnvironment"] = "pairCodeEnvironment";
|
|
7817
|
+
MutationKeys["updateCodeEnvironmentSettings"] = "updateCodeEnvironmentSettings";
|
|
7818
|
+
MutationKeys["deleteCodeEnvironment"] = "deleteCodeEnvironment";
|
|
6227
7819
|
return MutationKeys;
|
|
6228
7820
|
}({});
|
|
6229
7821
|
//#endregion
|
|
@@ -6625,15 +8217,18 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6625
8217
|
addPromptToGroup: () => addPromptToGroup,
|
|
6626
8218
|
addTagToConversation: () => addTagToConversation,
|
|
6627
8219
|
addToolFavorite: () => addToolFavorite,
|
|
8220
|
+
archiveAllConversations: () => archiveAllConversations,
|
|
6628
8221
|
archiveConversation: () => archiveConversation,
|
|
6629
8222
|
assignConversationToProject: () => assignConversationToProject,
|
|
6630
8223
|
bindActionOAuth: () => bindActionOAuth,
|
|
6631
8224
|
bindMCPOAuth: () => bindMCPOAuth,
|
|
6632
8225
|
branchMessage: () => branchMessage,
|
|
6633
8226
|
callTool: () => callTool,
|
|
8227
|
+
cancelAgentQueuedTurn: () => cancelAgentQueuedTurn,
|
|
6634
8228
|
cancelMCPOAuth: () => cancelMCPOAuth,
|
|
6635
8229
|
clearAllConversations: () => clearAllConversations,
|
|
6636
8230
|
confirmTwoFactor: () => confirmTwoFactor,
|
|
8231
|
+
controlSubagentTask: () => controlSubagentTask,
|
|
6637
8232
|
createAgent: () => createAgent,
|
|
6638
8233
|
createAgentApiKey: () => createAgentApiKey,
|
|
6639
8234
|
createAssistant: () => createAssistant,
|
|
@@ -6643,6 +8238,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6643
8238
|
createPreset: () => createPreset,
|
|
6644
8239
|
createProject: () => createProject,
|
|
6645
8240
|
createPrompt: () => createPrompt,
|
|
8241
|
+
createSchedule: () => createSchedule,
|
|
6646
8242
|
createSharedLink: () => createSharedLink,
|
|
6647
8243
|
createSkill: () => createSkill,
|
|
6648
8244
|
createSkillNode: () => createSkillNode,
|
|
@@ -6651,16 +8247,19 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6651
8247
|
deleteAgentAction: () => deleteAgentAction,
|
|
6652
8248
|
deleteAgentApiKey: () => deleteAgentApiKey,
|
|
6653
8249
|
deleteAssistant: () => deleteAssistant,
|
|
8250
|
+
deleteCodeEnvironment: () => deleteCodeEnvironment,
|
|
6654
8251
|
deleteConversation: () => deleteConversation,
|
|
6655
8252
|
deleteConversationTag: () => deleteConversationTag,
|
|
6656
8253
|
deleteFiles: () => deleteFiles,
|
|
6657
8254
|
deleteGitHubSkillSyncCredential: () => deleteGitHubSkillSyncCredential,
|
|
6658
8255
|
deleteMCPServer: () => deleteMCPServer,
|
|
6659
8256
|
deleteMemory: () => deleteMemory,
|
|
8257
|
+
deleteMemoryById: () => deleteMemoryById,
|
|
6660
8258
|
deletePreset: () => deletePreset,
|
|
6661
8259
|
deleteProject: () => deleteProject,
|
|
6662
8260
|
deletePrompt: () => deletePrompt,
|
|
6663
8261
|
deletePromptGroup: () => deletePromptGroup,
|
|
8262
|
+
deleteSchedule: () => deleteSchedule,
|
|
6664
8263
|
deleteSharedLink: () => deleteSharedLink,
|
|
6665
8264
|
deleteSkill: () => deleteSkill,
|
|
6666
8265
|
deleteSkillFile: () => deleteSkillFile,
|
|
@@ -6671,6 +8270,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6671
8270
|
duplicateConversation: () => duplicateConversation,
|
|
6672
8271
|
editArtifact: () => editArtifact,
|
|
6673
8272
|
enableTwoFactor: () => enableTwoFactor,
|
|
8273
|
+
enqueueAgentQueuedTurn: () => enqueueAgentQueuedTurn,
|
|
6674
8274
|
forkConversation: () => forkConversation,
|
|
6675
8275
|
forkSharedConversation: () => forkSharedConversation,
|
|
6676
8276
|
genTitle: () => genTitle,
|
|
@@ -6692,9 +8292,14 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6692
8292
|
getAvailableTools: () => getAvailableTools,
|
|
6693
8293
|
getBanner: () => getBanner,
|
|
6694
8294
|
getCategories: () => getCategories,
|
|
8295
|
+
getCodeEnvironmentStatus: () => getCodeEnvironmentStatus,
|
|
8296
|
+
getCodeEnvironments: () => getCodeEnvironments,
|
|
6695
8297
|
getCodeOutputDownload: () => getCodeOutputDownload,
|
|
6696
8298
|
getConversationById: () => getConversationById,
|
|
6697
8299
|
getConversationTags: () => getConversationTags,
|
|
8300
|
+
getConversationTraceAvailability: () => getConversationTraceAvailability,
|
|
8301
|
+
getConversationTraceRecord: () => getConversationTraceRecord,
|
|
8302
|
+
getConversationTraceRecords: () => getConversationTraceRecords,
|
|
6698
8303
|
getConversations: () => getConversations,
|
|
6699
8304
|
getCustomConfigSpeech: () => getCustomConfigSpeech,
|
|
6700
8305
|
getDomainServerBaseUrl: () => getDomainServerBaseUrl,
|
|
@@ -6708,6 +8313,8 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6708
8313
|
getFiles: () => getFiles,
|
|
6709
8314
|
getGitHubSkillSyncStatus: () => getGitHubSkillSyncStatus,
|
|
6710
8315
|
getGraphApiToken: () => getGraphApiToken,
|
|
8316
|
+
getInsights: () => getInsights,
|
|
8317
|
+
getInsightsAccess: () => getInsightsAccess,
|
|
6711
8318
|
getLangfuseConnection: () => getLangfuseConnection,
|
|
6712
8319
|
getLangfuseSessionLink: () => getLangfuseSessionLink,
|
|
6713
8320
|
getLoginGoogle: () => getLoginGoogle,
|
|
@@ -6720,8 +8327,11 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6720
8327
|
getMCPTools: () => getMCPTools,
|
|
6721
8328
|
getMarketplaceAgents: () => getMarketplaceAgents,
|
|
6722
8329
|
getMemories: () => getMemories,
|
|
8330
|
+
getMessageById: () => getMessageById,
|
|
6723
8331
|
getMessagesByConvoId: () => getMessagesByConvoId,
|
|
6724
8332
|
getModels: () => getModels,
|
|
8333
|
+
getParentSubagents: () => getParentSubagents,
|
|
8334
|
+
getPinnedOrder: () => getPinnedOrder,
|
|
6725
8335
|
getPresets: () => getPresets,
|
|
6726
8336
|
getProjectById: () => getProjectById,
|
|
6727
8337
|
getPrompt: () => getPrompt,
|
|
@@ -6731,6 +8341,8 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6731
8341
|
getRandomPrompts: () => getRandomPrompts,
|
|
6732
8342
|
getResourcePermissions: () => getResourcePermissions,
|
|
6733
8343
|
getRole: () => getRole,
|
|
8344
|
+
getSchedule: () => getSchedule,
|
|
8345
|
+
getSchedules: () => getSchedules,
|
|
6734
8346
|
getSearchEnabled: () => getSearchEnabled,
|
|
6735
8347
|
getSharedFileDownload: () => getSharedFileDownload,
|
|
6736
8348
|
getSharedFilePreview: () => getSharedFilePreview,
|
|
@@ -6743,6 +8355,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6743
8355
|
getSkillStates: () => getSkillStates,
|
|
6744
8356
|
getSkillTree: () => getSkillTree,
|
|
6745
8357
|
getStartupConfig: () => getStartupConfig,
|
|
8358
|
+
getSubagentThread: () => getSubagentThread,
|
|
6746
8359
|
getTokenConfig: () => getTokenConfig,
|
|
6747
8360
|
getToolCalls: () => getToolCalls,
|
|
6748
8361
|
getToolFavorites: () => getToolFavorites,
|
|
@@ -6754,6 +8367,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6754
8367
|
healthCheck: () => healthCheck,
|
|
6755
8368
|
importConversationsFile: () => importConversationsFile,
|
|
6756
8369
|
importSkill: () => importSkill,
|
|
8370
|
+
listAgentQueuedTurns: () => listAgentQueuedTurns,
|
|
6757
8371
|
listAgents: () => listAgents,
|
|
6758
8372
|
listAssistants: () => listAssistants,
|
|
6759
8373
|
listConversations: () => listConversations,
|
|
@@ -6767,6 +8381,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6767
8381
|
logout: () => logout,
|
|
6768
8382
|
makePromptProduction: () => makePromptProduction,
|
|
6769
8383
|
markFilesUsage: () => markFilesUsage,
|
|
8384
|
+
pairCodeEnvironment: () => pairCodeEnvironment,
|
|
6770
8385
|
pinConversation: () => pinConversation,
|
|
6771
8386
|
rebuildConversationTags: () => rebuildConversationTags,
|
|
6772
8387
|
recordPromptGroupUsage: () => recordPromptGroupUsage,
|
|
@@ -6781,6 +8396,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6781
8396
|
revokeAllUserKeys: () => revokeAllUserKeys,
|
|
6782
8397
|
revokeUserKey: () => revokeUserKey,
|
|
6783
8398
|
runGitHubSkillSync: () => runGitHubSkillSync,
|
|
8399
|
+
runScheduleNow: () => runScheduleNow,
|
|
6784
8400
|
searchPrincipals: () => searchPrincipals,
|
|
6785
8401
|
setGitHubSkillSyncCredential: () => setGitHubSkillSyncCredential,
|
|
6786
8402
|
speechToText: () => speechToText,
|
|
@@ -6791,6 +8407,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6791
8407
|
updateAgentAction: () => updateAgentAction,
|
|
6792
8408
|
updateAgentPermissions: () => updateAgentPermissions,
|
|
6793
8409
|
updateAssistant: () => updateAssistant,
|
|
8410
|
+
updateCodeEnvironmentSettings: () => updateCodeEnvironmentSettings,
|
|
6794
8411
|
updateConversation: () => updateConversation,
|
|
6795
8412
|
updateConversationTag: () => updateConversationTag,
|
|
6796
8413
|
updateFavorites: () => updateFavorites,
|
|
@@ -6800,11 +8417,13 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6800
8417
|
updateMCPServersPermissions: () => updateMCPServersPermissions,
|
|
6801
8418
|
updateMarketplacePermissions: () => updateMarketplacePermissions,
|
|
6802
8419
|
updateMemory: () => updateMemory,
|
|
8420
|
+
updateMemoryById: () => updateMemoryById,
|
|
6803
8421
|
updateMemoryPermissions: () => updateMemoryPermissions,
|
|
6804
8422
|
updateMemoryPreferences: () => updateMemoryPreferences,
|
|
6805
8423
|
updateMessage: () => updateMessage,
|
|
6806
8424
|
updateMessageContent: () => updateMessageContent,
|
|
6807
8425
|
updatePeoplePickerPermissions: () => updatePeoplePickerPermissions,
|
|
8426
|
+
updatePinnedOrder: () => updatePinnedOrder,
|
|
6808
8427
|
updatePreset: () => updatePreset,
|
|
6809
8428
|
updateProject: () => updateProject,
|
|
6810
8429
|
updatePromptGroup: () => updatePromptGroup,
|
|
@@ -6812,6 +8431,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6812
8431
|
updatePromptPermissions: () => updatePromptPermissions,
|
|
6813
8432
|
updateRemoteAgentsPermissions: () => updateRemoteAgentsPermissions,
|
|
6814
8433
|
updateResourcePermissions: () => updateResourcePermissions,
|
|
8434
|
+
updateSchedule: () => updateSchedule,
|
|
6815
8435
|
updateSharedLink: () => updateSharedLink,
|
|
6816
8436
|
updateSkill: () => updateSkill,
|
|
6817
8437
|
updateSkillNode: () => updateSkillNode,
|
|
@@ -6821,6 +8441,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6821
8441
|
updateTokenCount: () => updateTokenCount,
|
|
6822
8442
|
updateUserKey: () => updateUserKey,
|
|
6823
8443
|
updateUserPlugins: () => updateUserPlugins,
|
|
8444
|
+
updateUserPreferences: () => updateUserPreferences,
|
|
6824
8445
|
uploadAgentAvatar: () => uploadAgentAvatar,
|
|
6825
8446
|
uploadAssistantAvatar: () => uploadAssistantAvatar,
|
|
6826
8447
|
uploadAvatar: () => uploadAvatar,
|
|
@@ -6832,6 +8453,25 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6832
8453
|
verifyTwoFactor: () => verifyTwoFactor,
|
|
6833
8454
|
verifyTwoFactorTemp: () => verifyTwoFactorTemp
|
|
6834
8455
|
});
|
|
8456
|
+
function getInsights(params = {}) {
|
|
8457
|
+
const query = new URLSearchParams();
|
|
8458
|
+
for (const [key, value] of Object.entries(params)) if (Array.isArray(value)) value.forEach((item) => query.append(key, String(item)));
|
|
8459
|
+
else if (value !== void 0 && value !== null && value !== "") query.set(key, String(value));
|
|
8460
|
+
const suffix = query.toString() ? `?${query.toString()}` : "";
|
|
8461
|
+
return request_default.get(`${insights()}${suffix}`);
|
|
8462
|
+
}
|
|
8463
|
+
function getInsightsAccess() {
|
|
8464
|
+
return request_default.get(insightsAccess());
|
|
8465
|
+
}
|
|
8466
|
+
function getConversationTraceAvailability(conversationId) {
|
|
8467
|
+
return request_default.get(conversationTraceAvailability(conversationId));
|
|
8468
|
+
}
|
|
8469
|
+
function getConversationTraceRecords({ conversationId, cursor }, signal) {
|
|
8470
|
+
return request_default.get(conversationTraceRecords(conversationId, cursor), signal ? { signal } : void 0);
|
|
8471
|
+
}
|
|
8472
|
+
function getConversationTraceRecord({ conversationId, recordId, messageId, sourceId }, signal) {
|
|
8473
|
+
return request_default.get(conversationTraceRecord(conversationId, recordId, messageId, sourceId), signal ? { signal } : void 0);
|
|
8474
|
+
}
|
|
6835
8475
|
function getLangfuseConnection() {
|
|
6836
8476
|
return request_default.get(adminLangfuseConnection());
|
|
6837
8477
|
}
|
|
@@ -6853,12 +8493,34 @@ function revokeAllUserKeys() {
|
|
|
6853
8493
|
function deleteUser(payload) {
|
|
6854
8494
|
return request_default.deleteWithOptions(deleteUser$1(), { data: payload });
|
|
6855
8495
|
}
|
|
8496
|
+
function getCodeEnvironments() {
|
|
8497
|
+
return request_default.get(codeEnvironments());
|
|
8498
|
+
}
|
|
8499
|
+
function getCodeEnvironmentStatus(id) {
|
|
8500
|
+
return request_default.get(codeEnvironmentStatus(id));
|
|
8501
|
+
}
|
|
8502
|
+
function pairCodeEnvironment(payload) {
|
|
8503
|
+
return request_default.post(codeEnvironmentPairings(), payload);
|
|
8504
|
+
}
|
|
8505
|
+
function deleteCodeEnvironment(id) {
|
|
8506
|
+
return request_default.delete(codeEnvironmentById(id));
|
|
8507
|
+
}
|
|
8508
|
+
function updateCodeEnvironmentSettings({ id, settings }) {
|
|
8509
|
+
return request_default.patch(codeEnvironmentSettings(id), { settings });
|
|
8510
|
+
}
|
|
6856
8511
|
function getFavorites() {
|
|
6857
8512
|
return request_default.get(`${apiBaseUrl()}/api/user/settings/favorites`);
|
|
6858
8513
|
}
|
|
6859
8514
|
function updateFavorites(favorites) {
|
|
6860
8515
|
return request_default.post(`${apiBaseUrl()}/api/user/settings/favorites`, { favorites });
|
|
6861
8516
|
}
|
|
8517
|
+
/** Combined Pinned-section display order: favorite and pinned-chat entry keys interleaved. */
|
|
8518
|
+
function getPinnedOrder() {
|
|
8519
|
+
return request_default.get(pinnedOrder());
|
|
8520
|
+
}
|
|
8521
|
+
function updatePinnedOrder(pinnedOrder$1) {
|
|
8522
|
+
return request_default.post(pinnedOrder(), { pinnedOrder: pinnedOrder$1 });
|
|
8523
|
+
}
|
|
6862
8524
|
/** Tool favorites — starred marketplace items (builtins, tools, MCP servers, skills). */
|
|
6863
8525
|
function getToolFavorites() {
|
|
6864
8526
|
return request_default.get(toolFavorites());
|
|
@@ -6936,6 +8598,9 @@ function getSearchEnabled() {
|
|
|
6936
8598
|
function getUser() {
|
|
6937
8599
|
return request_default.get(user());
|
|
6938
8600
|
}
|
|
8601
|
+
function updateUserPreferences(preferences) {
|
|
8602
|
+
return request_default.patch(userPreferences(), preferences);
|
|
8603
|
+
}
|
|
6939
8604
|
function getUserBalance() {
|
|
6940
8605
|
return request_default.get(balance());
|
|
6941
8606
|
}
|
|
@@ -7314,6 +8979,9 @@ function updateConversation(payload) {
|
|
|
7314
8979
|
function archiveConversation(payload) {
|
|
7315
8980
|
return request_default.post(archiveConversation$1(), { arg: payload });
|
|
7316
8981
|
}
|
|
8982
|
+
function archiveAllConversations() {
|
|
8983
|
+
return request_default.post(archiveAllConversations$1(), {});
|
|
8984
|
+
}
|
|
7317
8985
|
function listProjects(params) {
|
|
7318
8986
|
return request_default.get(projects(params ?? {}));
|
|
7319
8987
|
}
|
|
@@ -7372,6 +9040,21 @@ function getMessagesByConvoId(conversationId) {
|
|
|
7372
9040
|
if (conversationId === "new" || conversationId === "PENDING") return Promise.resolve([]);
|
|
7373
9041
|
return request_default.get(messages({ conversationId }));
|
|
7374
9042
|
}
|
|
9043
|
+
function getMessageById(conversationId, messageId) {
|
|
9044
|
+
return request_default.get(messages({
|
|
9045
|
+
conversationId,
|
|
9046
|
+
messageId
|
|
9047
|
+
}));
|
|
9048
|
+
}
|
|
9049
|
+
function getParentSubagents(parentConversationId) {
|
|
9050
|
+
return request_default.get(parentSubagents(parentConversationId));
|
|
9051
|
+
}
|
|
9052
|
+
function getSubagentThread(parentConversationId, threadId, taskId, cursor) {
|
|
9053
|
+
return request_default.get(subagentThread(parentConversationId, threadId, taskId, cursor));
|
|
9054
|
+
}
|
|
9055
|
+
function controlSubagentTask(parentConversationId, threadId, body) {
|
|
9056
|
+
return request_default.post(subagentControl(parentConversationId, threadId), body);
|
|
9057
|
+
}
|
|
7375
9058
|
function getPrompt(id) {
|
|
7376
9059
|
return request_default.get(getPrompt$1(id));
|
|
7377
9060
|
}
|
|
@@ -7420,6 +9103,33 @@ function getRandomPrompts(variables) {
|
|
|
7420
9103
|
function listSkills(params) {
|
|
7421
9104
|
return request_default.get(listSkillsWithFilters(params ?? {}));
|
|
7422
9105
|
}
|
|
9106
|
+
function getSchedules() {
|
|
9107
|
+
return request_default.get(schedules());
|
|
9108
|
+
}
|
|
9109
|
+
function enqueueAgentQueuedTurn(payload) {
|
|
9110
|
+
return request_default.post(agentQueuedTurns(), payload);
|
|
9111
|
+
}
|
|
9112
|
+
function listAgentQueuedTurns(conversationId, clientRequestIds) {
|
|
9113
|
+
return request_default.get(agentQueuedTurnsByConversation(conversationId, clientRequestIds));
|
|
9114
|
+
}
|
|
9115
|
+
function cancelAgentQueuedTurn(queuedTurnId) {
|
|
9116
|
+
return request_default.delete(agentQueuedTurn(queuedTurnId));
|
|
9117
|
+
}
|
|
9118
|
+
function getSchedule(id) {
|
|
9119
|
+
return request_default.get(schedule(id));
|
|
9120
|
+
}
|
|
9121
|
+
function createSchedule(payload) {
|
|
9122
|
+
return request_default.post(schedules(), payload);
|
|
9123
|
+
}
|
|
9124
|
+
function updateSchedule(id, payload) {
|
|
9125
|
+
return request_default.patch(schedule(id), payload);
|
|
9126
|
+
}
|
|
9127
|
+
function deleteSchedule(id) {
|
|
9128
|
+
return request_default.delete(schedule(id));
|
|
9129
|
+
}
|
|
9130
|
+
function runScheduleNow(id) {
|
|
9131
|
+
return request_default.post(runSchedule(id), {});
|
|
9132
|
+
}
|
|
7423
9133
|
function getSkill(id) {
|
|
7424
9134
|
return request_default.get(getSkill$1(id));
|
|
7425
9135
|
}
|
|
@@ -7610,12 +9320,21 @@ const getMemories = () => {
|
|
|
7610
9320
|
const deleteMemory = (key, agentId) => {
|
|
7611
9321
|
return request_default.delete(memory(key, agentId));
|
|
7612
9322
|
};
|
|
9323
|
+
const deleteMemoryById = (id, agentId) => {
|
|
9324
|
+
return request_default.delete(memoryById(id, agentId));
|
|
9325
|
+
};
|
|
7613
9326
|
const updateMemory = (key, value, originalKey, agentId) => {
|
|
7614
9327
|
return request_default.patch(memory(originalKey || key, agentId), {
|
|
7615
9328
|
key,
|
|
7616
9329
|
value
|
|
7617
9330
|
});
|
|
7618
9331
|
};
|
|
9332
|
+
const updateMemoryById = (id, value, key, agentId) => {
|
|
9333
|
+
return request_default.patch(memoryById(id, agentId), {
|
|
9334
|
+
value,
|
|
9335
|
+
...key ? { key } : {}
|
|
9336
|
+
});
|
|
9337
|
+
};
|
|
7619
9338
|
const updateMemoryPreferences = (preferences) => {
|
|
7620
9339
|
return request_default.patch(memoryPreferences(), preferences);
|
|
7621
9340
|
};
|
|
@@ -7650,6 +9369,18 @@ const getActiveJobs = () => {
|
|
|
7650
9369
|
return request_default.get(activeJobs());
|
|
7651
9370
|
};
|
|
7652
9371
|
//#endregion
|
|
9372
|
+
Object.defineProperty(exports, "ACTION_METADATA_FILTER_FIELDS", {
|
|
9373
|
+
enumerable: true,
|
|
9374
|
+
get: function() {
|
|
9375
|
+
return ACTION_METADATA_FILTER_FIELDS;
|
|
9376
|
+
}
|
|
9377
|
+
});
|
|
9378
|
+
Object.defineProperty(exports, "AGENT_INSTRUCTION_FILTER_FIELDS", {
|
|
9379
|
+
enumerable: true,
|
|
9380
|
+
get: function() {
|
|
9381
|
+
return AGENT_INSTRUCTION_FILTER_FIELDS;
|
|
9382
|
+
}
|
|
9383
|
+
});
|
|
7653
9384
|
Object.defineProperty(exports, "AUTH_USER_DOC_BY_ID_PREFIX", {
|
|
7654
9385
|
enumerable: true,
|
|
7655
9386
|
get: function() {
|
|
@@ -7734,6 +9465,72 @@ Object.defineProperty(exports, "BedrockReasoningConfig", {
|
|
|
7734
9465
|
return BedrockReasoningConfig;
|
|
7735
9466
|
}
|
|
7736
9467
|
});
|
|
9468
|
+
Object.defineProperty(exports, "CODE_APPROVAL_MODES", {
|
|
9469
|
+
enumerable: true,
|
|
9470
|
+
get: function() {
|
|
9471
|
+
return CODE_APPROVAL_MODES;
|
|
9472
|
+
}
|
|
9473
|
+
});
|
|
9474
|
+
Object.defineProperty(exports, "CODE_ENVIRONMENT_COMMAND_TIMEOUT_DEFAULT_MS", {
|
|
9475
|
+
enumerable: true,
|
|
9476
|
+
get: function() {
|
|
9477
|
+
return CODE_ENVIRONMENT_COMMAND_TIMEOUT_DEFAULT_MS;
|
|
9478
|
+
}
|
|
9479
|
+
});
|
|
9480
|
+
Object.defineProperty(exports, "CODE_ENVIRONMENT_COMMAND_TIMEOUT_HARD_MAX_MS", {
|
|
9481
|
+
enumerable: true,
|
|
9482
|
+
get: function() {
|
|
9483
|
+
return CODE_ENVIRONMENT_COMMAND_TIMEOUT_HARD_MAX_MS;
|
|
9484
|
+
}
|
|
9485
|
+
});
|
|
9486
|
+
Object.defineProperty(exports, "CODE_ENVIRONMENT_DECISION_VERSION", {
|
|
9487
|
+
enumerable: true,
|
|
9488
|
+
get: function() {
|
|
9489
|
+
return CODE_ENVIRONMENT_DECISION_VERSION;
|
|
9490
|
+
}
|
|
9491
|
+
});
|
|
9492
|
+
Object.defineProperty(exports, "CODE_ENVIRONMENT_MODES", {
|
|
9493
|
+
enumerable: true,
|
|
9494
|
+
get: function() {
|
|
9495
|
+
return CODE_ENVIRONMENT_MODES;
|
|
9496
|
+
}
|
|
9497
|
+
});
|
|
9498
|
+
Object.defineProperty(exports, "CODE_WORKSPACE_ID_PATTERN", {
|
|
9499
|
+
enumerable: true,
|
|
9500
|
+
get: function() {
|
|
9501
|
+
return CODE_WORKSPACE_ID_PATTERN;
|
|
9502
|
+
}
|
|
9503
|
+
});
|
|
9504
|
+
Object.defineProperty(exports, "CODE_WORKSPACE_MAX_COUNT", {
|
|
9505
|
+
enumerable: true,
|
|
9506
|
+
get: function() {
|
|
9507
|
+
return CODE_WORKSPACE_MAX_COUNT;
|
|
9508
|
+
}
|
|
9509
|
+
});
|
|
9510
|
+
Object.defineProperty(exports, "CODE_WORKSPACE_OPERATIONS", {
|
|
9511
|
+
enumerable: true,
|
|
9512
|
+
get: function() {
|
|
9513
|
+
return CODE_WORKSPACE_OPERATIONS;
|
|
9514
|
+
}
|
|
9515
|
+
});
|
|
9516
|
+
Object.defineProperty(exports, "CODE_WORKSPACE_SELECTION_ERROR_REASONS", {
|
|
9517
|
+
enumerable: true,
|
|
9518
|
+
get: function() {
|
|
9519
|
+
return CODE_WORKSPACE_SELECTION_ERROR_REASONS;
|
|
9520
|
+
}
|
|
9521
|
+
});
|
|
9522
|
+
Object.defineProperty(exports, "CONVERSATION_STARTER_FILTER_FIELDS", {
|
|
9523
|
+
enumerable: true,
|
|
9524
|
+
get: function() {
|
|
9525
|
+
return CONVERSATION_STARTER_FILTER_FIELDS;
|
|
9526
|
+
}
|
|
9527
|
+
});
|
|
9528
|
+
Object.defineProperty(exports, "CONVERSATION_TITLE_FILTER_FIELDS", {
|
|
9529
|
+
enumerable: true,
|
|
9530
|
+
get: function() {
|
|
9531
|
+
return CONVERSATION_TITLE_FILTER_FIELDS;
|
|
9532
|
+
}
|
|
9533
|
+
});
|
|
7737
9534
|
Object.defineProperty(exports, "CacheKeys", {
|
|
7738
9535
|
enumerable: true,
|
|
7739
9536
|
get: function() {
|
|
@@ -7746,6 +9543,12 @@ Object.defineProperty(exports, "Capabilities", {
|
|
|
7746
9543
|
return Capabilities;
|
|
7747
9544
|
}
|
|
7748
9545
|
});
|
|
9546
|
+
Object.defineProperty(exports, "CodeApprovalModeError", {
|
|
9547
|
+
enumerable: true,
|
|
9548
|
+
get: function() {
|
|
9549
|
+
return CodeApprovalModeError;
|
|
9550
|
+
}
|
|
9551
|
+
});
|
|
7749
9552
|
Object.defineProperty(exports, "CohereConstants", {
|
|
7750
9553
|
enumerable: true,
|
|
7751
9554
|
get: function() {
|
|
@@ -7770,6 +9573,12 @@ Object.defineProperty(exports, "DEFAULT_MEMORY_MAX_INPUT_TOKENS", {
|
|
|
7770
9573
|
return DEFAULT_MEMORY_MAX_INPUT_TOKENS;
|
|
7771
9574
|
}
|
|
7772
9575
|
});
|
|
9576
|
+
Object.defineProperty(exports, "DefaultLLMDeliveryPath", {
|
|
9577
|
+
enumerable: true,
|
|
9578
|
+
get: function() {
|
|
9579
|
+
return DefaultLLMDeliveryPath;
|
|
9580
|
+
}
|
|
9581
|
+
});
|
|
7773
9582
|
Object.defineProperty(exports, "DynamicQueryKeys", {
|
|
7774
9583
|
enumerable: true,
|
|
7775
9584
|
get: function() {
|
|
@@ -7806,6 +9615,12 @@ Object.defineProperty(exports, "ErrorTypes", {
|
|
|
7806
9615
|
return ErrorTypes;
|
|
7807
9616
|
}
|
|
7808
9617
|
});
|
|
9618
|
+
Object.defineProperty(exports, "FEEDBACK_FILTER_FIELDS", {
|
|
9619
|
+
enumerable: true,
|
|
9620
|
+
get: function() {
|
|
9621
|
+
return FEEDBACK_FILTER_FIELDS;
|
|
9622
|
+
}
|
|
9623
|
+
});
|
|
7809
9624
|
Object.defineProperty(exports, "FEEDBACK_RATINGS", {
|
|
7810
9625
|
enumerable: true,
|
|
7811
9626
|
get: function() {
|
|
@@ -7824,6 +9639,18 @@ Object.defineProperty(exports, "FEEDBACK_TAGS", {
|
|
|
7824
9639
|
return FEEDBACK_TAGS;
|
|
7825
9640
|
}
|
|
7826
9641
|
});
|
|
9642
|
+
Object.defineProperty(exports, "FILE_FILTER_FIELDS", {
|
|
9643
|
+
enumerable: true,
|
|
9644
|
+
get: function() {
|
|
9645
|
+
return FILE_FILTER_FIELDS;
|
|
9646
|
+
}
|
|
9647
|
+
});
|
|
9648
|
+
Object.defineProperty(exports, "FILTER_PII_STARTER_PATTERNS", {
|
|
9649
|
+
enumerable: true,
|
|
9650
|
+
get: function() {
|
|
9651
|
+
return FILTER_PII_STARTER_PATTERNS;
|
|
9652
|
+
}
|
|
9653
|
+
});
|
|
7827
9654
|
Object.defineProperty(exports, "FetchTokenConfig", {
|
|
7828
9655
|
enumerable: true,
|
|
7829
9656
|
get: function() {
|
|
@@ -7854,6 +9681,12 @@ Object.defineProperty(exports, "ForkOptions", {
|
|
|
7854
9681
|
return ForkOptions;
|
|
7855
9682
|
}
|
|
7856
9683
|
});
|
|
9684
|
+
Object.defineProperty(exports, "HITL_MESSAGE_FILTER_FIELDS", {
|
|
9685
|
+
enumerable: true,
|
|
9686
|
+
get: function() {
|
|
9687
|
+
return HITL_MESSAGE_FILTER_FIELDS;
|
|
9688
|
+
}
|
|
9689
|
+
});
|
|
7857
9690
|
Object.defineProperty(exports, "ImageDetail", {
|
|
7858
9691
|
enumerable: true,
|
|
7859
9692
|
get: function() {
|
|
@@ -7884,154 +9717,280 @@ Object.defineProperty(exports, "KnownEndpoints", {
|
|
|
7884
9717
|
return KnownEndpoints;
|
|
7885
9718
|
}
|
|
7886
9719
|
});
|
|
7887
|
-
Object.defineProperty(exports, "
|
|
9720
|
+
Object.defineProperty(exports, "LANGFUSE_TRACE_CONVERSATION_METADATA_FIELDS", {
|
|
7888
9721
|
enumerable: true,
|
|
7889
9722
|
get: function() {
|
|
7890
|
-
return
|
|
9723
|
+
return LANGFUSE_TRACE_CONVERSATION_METADATA_FIELDS;
|
|
7891
9724
|
}
|
|
7892
9725
|
});
|
|
7893
|
-
Object.defineProperty(exports, "
|
|
9726
|
+
Object.defineProperty(exports, "LANGFUSE_TRACE_USER_ID_FIELDS", {
|
|
7894
9727
|
enumerable: true,
|
|
7895
9728
|
get: function() {
|
|
7896
|
-
return
|
|
9729
|
+
return LANGFUSE_TRACE_USER_ID_FIELDS;
|
|
7897
9730
|
}
|
|
7898
9731
|
});
|
|
7899
|
-
Object.defineProperty(exports, "
|
|
9732
|
+
Object.defineProperty(exports, "LANGFUSE_TRACE_USER_METADATA_FIELDS", {
|
|
7900
9733
|
enumerable: true,
|
|
7901
9734
|
get: function() {
|
|
7902
|
-
return
|
|
9735
|
+
return LANGFUSE_TRACE_USER_METADATA_FIELDS;
|
|
7903
9736
|
}
|
|
7904
9737
|
});
|
|
7905
|
-
Object.defineProperty(exports, "
|
|
9738
|
+
Object.defineProperty(exports, "LocalStorageKeys", {
|
|
7906
9739
|
enumerable: true,
|
|
7907
9740
|
get: function() {
|
|
7908
|
-
return
|
|
9741
|
+
return LocalStorageKeys;
|
|
7909
9742
|
}
|
|
7910
9743
|
});
|
|
7911
|
-
Object.defineProperty(exports, "
|
|
9744
|
+
Object.defineProperty(exports, "MAX_CHAT_PROJECT_DESCRIPTION_LENGTH", {
|
|
7912
9745
|
enumerable: true,
|
|
7913
9746
|
get: function() {
|
|
7914
|
-
return
|
|
9747
|
+
return MAX_CHAT_PROJECT_DESCRIPTION_LENGTH;
|
|
7915
9748
|
}
|
|
7916
9749
|
});
|
|
7917
|
-
Object.defineProperty(exports, "
|
|
9750
|
+
Object.defineProperty(exports, "MAX_CHAT_PROJECT_NAME_LENGTH", {
|
|
7918
9751
|
enumerable: true,
|
|
7919
9752
|
get: function() {
|
|
7920
|
-
return
|
|
9753
|
+
return MAX_CHAT_PROJECT_NAME_LENGTH;
|
|
7921
9754
|
}
|
|
7922
9755
|
});
|
|
7923
|
-
Object.defineProperty(exports, "
|
|
9756
|
+
Object.defineProperty(exports, "MAX_GRAPH_SUBAGENT_MEMBERS", {
|
|
7924
9757
|
enumerable: true,
|
|
7925
9758
|
get: function() {
|
|
7926
|
-
return
|
|
9759
|
+
return MAX_GRAPH_SUBAGENT_MEMBERS;
|
|
7927
9760
|
}
|
|
7928
9761
|
});
|
|
7929
|
-
Object.defineProperty(exports, "
|
|
9762
|
+
Object.defineProperty(exports, "MAX_MCP_ICON_PATH_LENGTH", {
|
|
7930
9763
|
enumerable: true,
|
|
7931
9764
|
get: function() {
|
|
7932
|
-
return
|
|
9765
|
+
return MAX_MCP_ICON_PATH_LENGTH;
|
|
7933
9766
|
}
|
|
7934
9767
|
});
|
|
7935
|
-
Object.defineProperty(exports, "
|
|
9768
|
+
Object.defineProperty(exports, "MAX_PII_CUSTOM_PATTERNS_TOTAL", {
|
|
7936
9769
|
enumerable: true,
|
|
7937
9770
|
get: function() {
|
|
7938
|
-
return
|
|
9771
|
+
return MAX_PII_CUSTOM_PATTERNS_TOTAL;
|
|
7939
9772
|
}
|
|
7940
9773
|
});
|
|
7941
|
-
Object.defineProperty(exports, "
|
|
9774
|
+
Object.defineProperty(exports, "MAX_PII_CUSTOM_REGEX_CHARACTERS", {
|
|
7942
9775
|
enumerable: true,
|
|
7943
9776
|
get: function() {
|
|
7944
|
-
return
|
|
9777
|
+
return MAX_PII_CUSTOM_REGEX_CHARACTERS;
|
|
7945
9778
|
}
|
|
7946
9779
|
});
|
|
7947
|
-
Object.defineProperty(exports, "
|
|
9780
|
+
Object.defineProperty(exports, "MAX_PII_CUSTOM_REGEX_INSTRUCTIONS", {
|
|
7948
9781
|
enumerable: true,
|
|
7949
9782
|
get: function() {
|
|
7950
|
-
return
|
|
9783
|
+
return MAX_PII_CUSTOM_REGEX_INSTRUCTIONS;
|
|
7951
9784
|
}
|
|
7952
9785
|
});
|
|
7953
|
-
Object.defineProperty(exports, "
|
|
9786
|
+
Object.defineProperty(exports, "MAX_PII_PATTERNS_PER_SOURCE", {
|
|
7954
9787
|
enumerable: true,
|
|
7955
9788
|
get: function() {
|
|
7956
|
-
return
|
|
9789
|
+
return MAX_PII_PATTERNS_PER_SOURCE;
|
|
7957
9790
|
}
|
|
7958
9791
|
});
|
|
7959
|
-
Object.defineProperty(exports, "
|
|
9792
|
+
Object.defineProperty(exports, "MAX_PII_PATTERN_ID_LENGTH", {
|
|
7960
9793
|
enumerable: true,
|
|
7961
9794
|
get: function() {
|
|
7962
|
-
return
|
|
9795
|
+
return MAX_PII_PATTERN_ID_LENGTH;
|
|
7963
9796
|
}
|
|
7964
9797
|
});
|
|
7965
|
-
Object.defineProperty(exports, "
|
|
9798
|
+
Object.defineProperty(exports, "MAX_PII_PATTERN_LABEL_LENGTH", {
|
|
7966
9799
|
enumerable: true,
|
|
7967
9800
|
get: function() {
|
|
7968
|
-
return
|
|
9801
|
+
return MAX_PII_PATTERN_LABEL_LENGTH;
|
|
7969
9802
|
}
|
|
7970
9803
|
});
|
|
7971
|
-
Object.defineProperty(exports, "
|
|
9804
|
+
Object.defineProperty(exports, "MAX_PII_PATTERN_LENGTH", {
|
|
7972
9805
|
enumerable: true,
|
|
7973
9806
|
get: function() {
|
|
7974
|
-
return
|
|
9807
|
+
return MAX_PII_PATTERN_LENGTH;
|
|
7975
9808
|
}
|
|
7976
9809
|
});
|
|
7977
|
-
Object.defineProperty(exports, "
|
|
9810
|
+
Object.defineProperty(exports, "MAX_SUBAGENTS", {
|
|
7978
9811
|
enumerable: true,
|
|
7979
9812
|
get: function() {
|
|
7980
|
-
return
|
|
9813
|
+
return MAX_SUBAGENTS;
|
|
7981
9814
|
}
|
|
7982
9815
|
});
|
|
7983
|
-
Object.defineProperty(exports, "
|
|
9816
|
+
Object.defineProperty(exports, "MAX_SUBAGENTS_CEILING", {
|
|
7984
9817
|
enumerable: true,
|
|
7985
9818
|
get: function() {
|
|
7986
|
-
return
|
|
9819
|
+
return MAX_SUBAGENTS_CEILING;
|
|
7987
9820
|
}
|
|
7988
9821
|
});
|
|
7989
|
-
Object.defineProperty(exports, "
|
|
9822
|
+
Object.defineProperty(exports, "MAX_SUBAGENT_DEPTH", {
|
|
7990
9823
|
enumerable: true,
|
|
7991
9824
|
get: function() {
|
|
7992
|
-
return
|
|
9825
|
+
return MAX_SUBAGENT_DEPTH;
|
|
7993
9826
|
}
|
|
7994
9827
|
});
|
|
7995
|
-
Object.defineProperty(exports, "
|
|
9828
|
+
Object.defineProperty(exports, "MAX_SUBAGENT_GRAPH_NODES", {
|
|
7996
9829
|
enumerable: true,
|
|
7997
9830
|
get: function() {
|
|
7998
|
-
return
|
|
9831
|
+
return MAX_SUBAGENT_GRAPH_NODES;
|
|
7999
9832
|
}
|
|
8000
9833
|
});
|
|
8001
|
-
Object.defineProperty(exports, "
|
|
9834
|
+
Object.defineProperty(exports, "MAX_SUBAGENT_RUN_CONFIGS", {
|
|
8002
9835
|
enumerable: true,
|
|
8003
9836
|
get: function() {
|
|
8004
|
-
return
|
|
9837
|
+
return MAX_SUBAGENT_RUN_CONFIGS;
|
|
8005
9838
|
}
|
|
8006
9839
|
});
|
|
8007
|
-
Object.defineProperty(exports, "
|
|
9840
|
+
Object.defineProperty(exports, "MCPOptionsSchema", {
|
|
8008
9841
|
enumerable: true,
|
|
8009
9842
|
get: function() {
|
|
8010
|
-
return
|
|
9843
|
+
return MCPOptionsSchema;
|
|
8011
9844
|
}
|
|
8012
9845
|
});
|
|
8013
|
-
Object.defineProperty(exports, "
|
|
9846
|
+
Object.defineProperty(exports, "MCPServerUserInputSchema", {
|
|
8014
9847
|
enumerable: true,
|
|
8015
9848
|
get: function() {
|
|
8016
|
-
return
|
|
9849
|
+
return MCPServerUserInputSchema;
|
|
8017
9850
|
}
|
|
8018
9851
|
});
|
|
8019
|
-
Object.defineProperty(exports, "
|
|
9852
|
+
Object.defineProperty(exports, "MCPServersSchema", {
|
|
8020
9853
|
enumerable: true,
|
|
8021
9854
|
get: function() {
|
|
8022
|
-
return
|
|
9855
|
+
return MCPServersSchema;
|
|
8023
9856
|
}
|
|
8024
9857
|
});
|
|
8025
|
-
Object.defineProperty(exports, "
|
|
9858
|
+
Object.defineProperty(exports, "MCP_SERVER_TITLE_ERROR", {
|
|
8026
9859
|
enumerable: true,
|
|
8027
9860
|
get: function() {
|
|
8028
|
-
return
|
|
9861
|
+
return MCP_SERVER_TITLE_ERROR;
|
|
8029
9862
|
}
|
|
8030
9863
|
});
|
|
8031
|
-
Object.defineProperty(exports, "
|
|
9864
|
+
Object.defineProperty(exports, "MCP_SERVER_TITLE_PATTERN", {
|
|
8032
9865
|
enumerable: true,
|
|
8033
9866
|
get: function() {
|
|
8034
|
-
return
|
|
9867
|
+
return MCP_SERVER_TITLE_PATTERN;
|
|
9868
|
+
}
|
|
9869
|
+
});
|
|
9870
|
+
Object.defineProperty(exports, "MCP_USER_INPUT_FIELDS", {
|
|
9871
|
+
enumerable: true,
|
|
9872
|
+
get: function() {
|
|
9873
|
+
return MCP_USER_INPUT_FIELDS;
|
|
9874
|
+
}
|
|
9875
|
+
});
|
|
9876
|
+
Object.defineProperty(exports, "MEMORY_FILTER_FIELDS", {
|
|
9877
|
+
enumerable: true,
|
|
9878
|
+
get: function() {
|
|
9879
|
+
return MEMORY_FILTER_FIELDS;
|
|
9880
|
+
}
|
|
9881
|
+
});
|
|
9882
|
+
Object.defineProperty(exports, "MESSAGE_FILTER_FIELDS", {
|
|
9883
|
+
enumerable: true,
|
|
9884
|
+
get: function() {
|
|
9885
|
+
return MESSAGE_FILTER_FIELDS;
|
|
9886
|
+
}
|
|
9887
|
+
});
|
|
9888
|
+
Object.defineProperty(exports, "MODEL_PARAMETER_FILTER_FIELDS", {
|
|
9889
|
+
enumerable: true,
|
|
9890
|
+
get: function() {
|
|
9891
|
+
return MODEL_PARAMETER_FILTER_FIELDS;
|
|
9892
|
+
}
|
|
9893
|
+
});
|
|
9894
|
+
Object.defineProperty(exports, "MYTHOS_CLASS_FAMILIES", {
|
|
9895
|
+
enumerable: true,
|
|
9896
|
+
get: function() {
|
|
9897
|
+
return MYTHOS_CLASS_FAMILIES;
|
|
9898
|
+
}
|
|
9899
|
+
});
|
|
9900
|
+
Object.defineProperty(exports, "MemoryScope", {
|
|
9901
|
+
enumerable: true,
|
|
9902
|
+
get: function() {
|
|
9903
|
+
return MemoryScope;
|
|
9904
|
+
}
|
|
9905
|
+
});
|
|
9906
|
+
Object.defineProperty(exports, "MessageContentTypes", {
|
|
9907
|
+
enumerable: true,
|
|
9908
|
+
get: function() {
|
|
9909
|
+
return MessageContentTypes;
|
|
9910
|
+
}
|
|
9911
|
+
});
|
|
9912
|
+
Object.defineProperty(exports, "MutationKeys", {
|
|
9913
|
+
enumerable: true,
|
|
9914
|
+
get: function() {
|
|
9915
|
+
return MutationKeys;
|
|
9916
|
+
}
|
|
9917
|
+
});
|
|
9918
|
+
Object.defineProperty(exports, "OCRStrategy", {
|
|
9919
|
+
enumerable: true,
|
|
9920
|
+
get: function() {
|
|
9921
|
+
return OCRStrategy;
|
|
9922
|
+
}
|
|
9923
|
+
});
|
|
9924
|
+
Object.defineProperty(exports, "OptionTypes", {
|
|
9925
|
+
enumerable: true,
|
|
9926
|
+
get: function() {
|
|
9927
|
+
return OptionTypes;
|
|
9928
|
+
}
|
|
9929
|
+
});
|
|
9930
|
+
Object.defineProperty(exports, "PROMPT_FILTER_FIELDS", {
|
|
9931
|
+
enumerable: true,
|
|
9932
|
+
get: function() {
|
|
9933
|
+
return PROMPT_FILTER_FIELDS;
|
|
9934
|
+
}
|
|
9935
|
+
});
|
|
9936
|
+
Object.defineProperty(exports, "PermissionBits", {
|
|
9937
|
+
enumerable: true,
|
|
9938
|
+
get: function() {
|
|
9939
|
+
return PermissionBits;
|
|
9940
|
+
}
|
|
9941
|
+
});
|
|
9942
|
+
Object.defineProperty(exports, "PrincipalModel", {
|
|
9943
|
+
enumerable: true,
|
|
9944
|
+
get: function() {
|
|
9945
|
+
return PrincipalModel;
|
|
9946
|
+
}
|
|
9947
|
+
});
|
|
9948
|
+
Object.defineProperty(exports, "PrincipalType", {
|
|
9949
|
+
enumerable: true,
|
|
9950
|
+
get: function() {
|
|
9951
|
+
return PrincipalType;
|
|
9952
|
+
}
|
|
9953
|
+
});
|
|
9954
|
+
Object.defineProperty(exports, "Providers", {
|
|
9955
|
+
enumerable: true,
|
|
9956
|
+
get: function() {
|
|
9957
|
+
return Providers;
|
|
9958
|
+
}
|
|
9959
|
+
});
|
|
9960
|
+
Object.defineProperty(exports, "QueryKeys", {
|
|
9961
|
+
enumerable: true,
|
|
9962
|
+
get: function() {
|
|
9963
|
+
return QueryKeys;
|
|
9964
|
+
}
|
|
9965
|
+
});
|
|
9966
|
+
Object.defineProperty(exports, "REFILL_INTERVAL_UNITS", {
|
|
9967
|
+
enumerable: true,
|
|
9968
|
+
get: function() {
|
|
9969
|
+
return REFILL_INTERVAL_UNITS;
|
|
9970
|
+
}
|
|
9971
|
+
});
|
|
9972
|
+
Object.defineProperty(exports, "RateLimitPrefix", {
|
|
9973
|
+
enumerable: true,
|
|
9974
|
+
get: function() {
|
|
9975
|
+
return RateLimitPrefix;
|
|
9976
|
+
}
|
|
9977
|
+
});
|
|
9978
|
+
Object.defineProperty(exports, "ReasoningContext", {
|
|
9979
|
+
enumerable: true,
|
|
9980
|
+
get: function() {
|
|
9981
|
+
return ReasoningContext;
|
|
9982
|
+
}
|
|
9983
|
+
});
|
|
9984
|
+
Object.defineProperty(exports, "ReasoningEffort", {
|
|
9985
|
+
enumerable: true,
|
|
9986
|
+
get: function() {
|
|
9987
|
+
return ReasoningEffort;
|
|
9988
|
+
}
|
|
9989
|
+
});
|
|
9990
|
+
Object.defineProperty(exports, "ReasoningMode", {
|
|
9991
|
+
enumerable: true,
|
|
9992
|
+
get: function() {
|
|
9993
|
+
return ReasoningMode;
|
|
8035
9994
|
}
|
|
8036
9995
|
});
|
|
8037
9996
|
Object.defineProperty(exports, "ReasoningParameterFormat", {
|
|
@@ -8076,6 +10035,12 @@ Object.defineProperty(exports, "RunStatus", {
|
|
|
8076
10035
|
return RunStatus;
|
|
8077
10036
|
}
|
|
8078
10037
|
});
|
|
10038
|
+
Object.defineProperty(exports, "SKILL_FILTER_FIELDS", {
|
|
10039
|
+
enumerable: true,
|
|
10040
|
+
get: function() {
|
|
10041
|
+
return SKILL_FILTER_FIELDS;
|
|
10042
|
+
}
|
|
10043
|
+
});
|
|
8079
10044
|
Object.defineProperty(exports, "SKILL_SYNC_DEFAULT_DISCOVERY_DEPTH", {
|
|
8080
10045
|
enumerable: true,
|
|
8081
10046
|
get: function() {
|
|
@@ -8106,6 +10071,18 @@ Object.defineProperty(exports, "SSEOptionsSchema", {
|
|
|
8106
10071
|
return SSEOptionsSchema;
|
|
8107
10072
|
}
|
|
8108
10073
|
});
|
|
10074
|
+
Object.defineProperty(exports, "STATEFUL_CODE_ENVIRONMENTS", {
|
|
10075
|
+
enumerable: true,
|
|
10076
|
+
get: function() {
|
|
10077
|
+
return STATEFUL_CODE_ENVIRONMENTS;
|
|
10078
|
+
}
|
|
10079
|
+
});
|
|
10080
|
+
Object.defineProperty(exports, "STORED_MESSAGE_FILTER_FIELDS", {
|
|
10081
|
+
enumerable: true,
|
|
10082
|
+
get: function() {
|
|
10083
|
+
return STORED_MESSAGE_FILTER_FIELDS;
|
|
10084
|
+
}
|
|
10085
|
+
});
|
|
8109
10086
|
Object.defineProperty(exports, "STTProviders", {
|
|
8110
10087
|
enumerable: true,
|
|
8111
10088
|
get: function() {
|
|
@@ -8154,6 +10131,12 @@ Object.defineProperty(exports, "SettingsViews", {
|
|
|
8154
10131
|
return SettingsViews;
|
|
8155
10132
|
}
|
|
8156
10133
|
});
|
|
10134
|
+
Object.defineProperty(exports, "SkillsScope", {
|
|
10135
|
+
enumerable: true,
|
|
10136
|
+
get: function() {
|
|
10137
|
+
return SkillsScope;
|
|
10138
|
+
}
|
|
10139
|
+
});
|
|
8157
10140
|
Object.defineProperty(exports, "StdioOptionsSchema", {
|
|
8158
10141
|
enumerable: true,
|
|
8159
10142
|
get: function() {
|
|
@@ -8178,6 +10161,12 @@ Object.defineProperty(exports, "SystemCategories", {
|
|
|
8178
10161
|
return SystemCategories;
|
|
8179
10162
|
}
|
|
8180
10163
|
});
|
|
10164
|
+
Object.defineProperty(exports, "TOOL_ARGUMENT_FILTER_FIELDS", {
|
|
10165
|
+
enumerable: true,
|
|
10166
|
+
get: function() {
|
|
10167
|
+
return TOOL_ARGUMENT_FILTER_FIELDS;
|
|
10168
|
+
}
|
|
10169
|
+
});
|
|
8181
10170
|
Object.defineProperty(exports, "TTSProviders", {
|
|
8182
10171
|
enumerable: true,
|
|
8183
10172
|
get: function() {
|
|
@@ -8268,6 +10257,24 @@ Object.defineProperty(exports, "actionDomainSeparator", {
|
|
|
8268
10257
|
return actionDomainSeparator;
|
|
8269
10258
|
}
|
|
8270
10259
|
});
|
|
10260
|
+
Object.defineProperty(exports, "actionMetadataFilterFieldSchema", {
|
|
10261
|
+
enumerable: true,
|
|
10262
|
+
get: function() {
|
|
10263
|
+
return actionMetadataFilterFieldSchema;
|
|
10264
|
+
}
|
|
10265
|
+
});
|
|
10266
|
+
Object.defineProperty(exports, "agentGitIdentitySchema", {
|
|
10267
|
+
enumerable: true,
|
|
10268
|
+
get: function() {
|
|
10269
|
+
return agentGitIdentitySchema;
|
|
10270
|
+
}
|
|
10271
|
+
});
|
|
10272
|
+
Object.defineProperty(exports, "agentInstructionFilterFieldSchema", {
|
|
10273
|
+
enumerable: true,
|
|
10274
|
+
get: function() {
|
|
10275
|
+
return agentInstructionFilterFieldSchema;
|
|
10276
|
+
}
|
|
10277
|
+
});
|
|
8271
10278
|
Object.defineProperty(exports, "agentsBaseSchema", {
|
|
8272
10279
|
enumerable: true,
|
|
8273
10280
|
get: function() {
|
|
@@ -8478,6 +10485,12 @@ Object.defineProperty(exports, "checkpointerTypeSchema", {
|
|
|
8478
10485
|
return checkpointerTypeSchema;
|
|
8479
10486
|
}
|
|
8480
10487
|
});
|
|
10488
|
+
Object.defineProperty(exports, "clampSettingRange", {
|
|
10489
|
+
enumerable: true,
|
|
10490
|
+
get: function() {
|
|
10491
|
+
return clampSettingRange;
|
|
10492
|
+
}
|
|
10493
|
+
});
|
|
8481
10494
|
Object.defineProperty(exports, "clearAllConversations", {
|
|
8482
10495
|
enumerable: true,
|
|
8483
10496
|
get: function() {
|
|
@@ -8490,6 +10503,24 @@ Object.defineProperty(exports, "cloudfrontConfigSchema", {
|
|
|
8490
10503
|
return cloudfrontConfigSchema;
|
|
8491
10504
|
}
|
|
8492
10505
|
});
|
|
10506
|
+
Object.defineProperty(exports, "codeEnvironmentPermissionDecisionSchema", {
|
|
10507
|
+
enumerable: true,
|
|
10508
|
+
get: function() {
|
|
10509
|
+
return codeEnvironmentPermissionDecisionSchema;
|
|
10510
|
+
}
|
|
10511
|
+
});
|
|
10512
|
+
Object.defineProperty(exports, "codeEnvironmentUserConfigSchema", {
|
|
10513
|
+
enumerable: true,
|
|
10514
|
+
get: function() {
|
|
10515
|
+
return codeEnvironmentUserConfigSchema;
|
|
10516
|
+
}
|
|
10517
|
+
});
|
|
10518
|
+
Object.defineProperty(exports, "codeEnvironmentUserSettingsSchema", {
|
|
10519
|
+
enumerable: true,
|
|
10520
|
+
get: function() {
|
|
10521
|
+
return codeEnvironmentUserSettingsSchema;
|
|
10522
|
+
}
|
|
10523
|
+
});
|
|
8493
10524
|
Object.defineProperty(exports, "codeInterpreterMimeTypes", {
|
|
8494
10525
|
enumerable: true,
|
|
8495
10526
|
get: function() {
|
|
@@ -8550,6 +10581,18 @@ Object.defineProperty(exports, "contextPruningSchema", {
|
|
|
8550
10581
|
return contextPruningSchema;
|
|
8551
10582
|
}
|
|
8552
10583
|
});
|
|
10584
|
+
Object.defineProperty(exports, "conversationStarterFilterFieldSchema", {
|
|
10585
|
+
enumerable: true,
|
|
10586
|
+
get: function() {
|
|
10587
|
+
return conversationStarterFilterFieldSchema;
|
|
10588
|
+
}
|
|
10589
|
+
});
|
|
10590
|
+
Object.defineProperty(exports, "conversationTitleFilterFieldSchema", {
|
|
10591
|
+
enumerable: true,
|
|
10592
|
+
get: function() {
|
|
10593
|
+
return conversationTitleFilterFieldSchema;
|
|
10594
|
+
}
|
|
10595
|
+
});
|
|
8553
10596
|
Object.defineProperty(exports, "convertStringsToRegex", {
|
|
8554
10597
|
enumerable: true,
|
|
8555
10598
|
get: function() {
|
|
@@ -8604,6 +10647,12 @@ Object.defineProperty(exports, "defaultEndpoints", {
|
|
|
8604
10647
|
return defaultEndpoints;
|
|
8605
10648
|
}
|
|
8606
10649
|
});
|
|
10650
|
+
Object.defineProperty(exports, "defaultLLMDeliveryPathSchema", {
|
|
10651
|
+
enumerable: true,
|
|
10652
|
+
get: function() {
|
|
10653
|
+
return defaultLLMDeliveryPathSchema;
|
|
10654
|
+
}
|
|
10655
|
+
});
|
|
8607
10656
|
Object.defineProperty(exports, "defaultModels", {
|
|
8608
10657
|
enumerable: true,
|
|
8609
10658
|
get: function() {
|
|
@@ -8808,6 +10857,12 @@ Object.defineProperty(exports, "extractVariableName", {
|
|
|
8808
10857
|
return extractVariableName;
|
|
8809
10858
|
}
|
|
8810
10859
|
});
|
|
10860
|
+
Object.defineProperty(exports, "feedbackFilterFieldSchema", {
|
|
10861
|
+
enumerable: true,
|
|
10862
|
+
get: function() {
|
|
10863
|
+
return feedbackFilterFieldSchema;
|
|
10864
|
+
}
|
|
10865
|
+
});
|
|
8811
10866
|
Object.defineProperty(exports, "feedbackRatingSchema", {
|
|
8812
10867
|
enumerable: true,
|
|
8813
10868
|
get: function() {
|
|
@@ -8838,6 +10893,12 @@ Object.defineProperty(exports, "fileConfigSchema", {
|
|
|
8838
10893
|
return fileConfigSchema;
|
|
8839
10894
|
}
|
|
8840
10895
|
});
|
|
10896
|
+
Object.defineProperty(exports, "fileFilterFieldSchema", {
|
|
10897
|
+
enumerable: true,
|
|
10898
|
+
get: function() {
|
|
10899
|
+
return fileFilterFieldSchema;
|
|
10900
|
+
}
|
|
10901
|
+
});
|
|
8841
10902
|
Object.defineProperty(exports, "fileSourceSchema", {
|
|
8842
10903
|
enumerable: true,
|
|
8843
10904
|
get: function() {
|
|
@@ -8856,6 +10917,36 @@ Object.defineProperty(exports, "fileStrategiesSchema", {
|
|
|
8856
10917
|
return fileStrategiesSchema;
|
|
8857
10918
|
}
|
|
8858
10919
|
});
|
|
10920
|
+
Object.defineProperty(exports, "filterPiiActionSchema", {
|
|
10921
|
+
enumerable: true,
|
|
10922
|
+
get: function() {
|
|
10923
|
+
return filterPiiActionSchema;
|
|
10924
|
+
}
|
|
10925
|
+
});
|
|
10926
|
+
Object.defineProperty(exports, "filterPiiCustomPatternSchema", {
|
|
10927
|
+
enumerable: true,
|
|
10928
|
+
get: function() {
|
|
10929
|
+
return filterPiiCustomPatternSchema;
|
|
10930
|
+
}
|
|
10931
|
+
});
|
|
10932
|
+
Object.defineProperty(exports, "filterPiiRegexSchema", {
|
|
10933
|
+
enumerable: true,
|
|
10934
|
+
get: function() {
|
|
10935
|
+
return filterPiiRegexSchema;
|
|
10936
|
+
}
|
|
10937
|
+
});
|
|
10938
|
+
Object.defineProperty(exports, "filterPiiStarterPatternSchema", {
|
|
10939
|
+
enumerable: true,
|
|
10940
|
+
get: function() {
|
|
10941
|
+
return filterPiiStarterPatternSchema;
|
|
10942
|
+
}
|
|
10943
|
+
});
|
|
10944
|
+
Object.defineProperty(exports, "filtersConfigSchema", {
|
|
10945
|
+
enumerable: true,
|
|
10946
|
+
get: function() {
|
|
10947
|
+
return filtersConfigSchema;
|
|
10948
|
+
}
|
|
10949
|
+
});
|
|
8859
10950
|
Object.defineProperty(exports, "fullMimeTypesList", {
|
|
8860
10951
|
enumerable: true,
|
|
8861
10952
|
get: function() {
|
|
@@ -8898,6 +10989,12 @@ Object.defineProperty(exports, "getAllEffectivePermissions", {
|
|
|
8898
10989
|
return getAllEffectivePermissions;
|
|
8899
10990
|
}
|
|
8900
10991
|
});
|
|
10992
|
+
Object.defineProperty(exports, "getAllowedCodeApprovalModes", {
|
|
10993
|
+
enumerable: true,
|
|
10994
|
+
get: function() {
|
|
10995
|
+
return getAllowedCodeApprovalModes;
|
|
10996
|
+
}
|
|
10997
|
+
});
|
|
8901
10998
|
Object.defineProperty(exports, "getAvailablePlugins", {
|
|
8902
10999
|
enumerable: true,
|
|
8903
11000
|
get: function() {
|
|
@@ -8934,6 +11031,12 @@ Object.defineProperty(exports, "getDefaultParamsEndpoint", {
|
|
|
8934
11031
|
return getDefaultParamsEndpoint;
|
|
8935
11032
|
}
|
|
8936
11033
|
});
|
|
11034
|
+
Object.defineProperty(exports, "getDocumentFileExtension", {
|
|
11035
|
+
enumerable: true,
|
|
11036
|
+
get: function() {
|
|
11037
|
+
return getDocumentFileExtension;
|
|
11038
|
+
}
|
|
11039
|
+
});
|
|
8937
11040
|
Object.defineProperty(exports, "getEffectivePermissions", {
|
|
8938
11041
|
enumerable: true,
|
|
8939
11042
|
get: function() {
|
|
@@ -8952,12 +11055,30 @@ Object.defineProperty(exports, "getEndpointFileConfig", {
|
|
|
8952
11055
|
return getEndpointFileConfig;
|
|
8953
11056
|
}
|
|
8954
11057
|
});
|
|
11058
|
+
Object.defineProperty(exports, "getGoogleThinkingBudgetBounds", {
|
|
11059
|
+
enumerable: true,
|
|
11060
|
+
get: function() {
|
|
11061
|
+
return getGoogleThinkingBudgetBounds;
|
|
11062
|
+
}
|
|
11063
|
+
});
|
|
11064
|
+
Object.defineProperty(exports, "getGoogleThinkingBudgetMax", {
|
|
11065
|
+
enumerable: true,
|
|
11066
|
+
get: function() {
|
|
11067
|
+
return getGoogleThinkingBudgetMax;
|
|
11068
|
+
}
|
|
11069
|
+
});
|
|
8955
11070
|
Object.defineProperty(exports, "getMCPServerConnectionStatus", {
|
|
8956
11071
|
enumerable: true,
|
|
8957
11072
|
get: function() {
|
|
8958
11073
|
return getMCPServerConnectionStatus;
|
|
8959
11074
|
}
|
|
8960
11075
|
});
|
|
11076
|
+
Object.defineProperty(exports, "getMaxSubagents", {
|
|
11077
|
+
enumerable: true,
|
|
11078
|
+
get: function() {
|
|
11079
|
+
return getMaxSubagents;
|
|
11080
|
+
}
|
|
11081
|
+
});
|
|
8961
11082
|
Object.defineProperty(exports, "getModelKey", {
|
|
8962
11083
|
enumerable: true,
|
|
8963
11084
|
get: function() {
|
|
@@ -8970,6 +11091,12 @@ Object.defineProperty(exports, "getModels", {
|
|
|
8970
11091
|
return getModels;
|
|
8971
11092
|
}
|
|
8972
11093
|
});
|
|
11094
|
+
Object.defineProperty(exports, "getPiiRegexProgramSize", {
|
|
11095
|
+
enumerable: true,
|
|
11096
|
+
get: function() {
|
|
11097
|
+
return getPiiRegexProgramSize;
|
|
11098
|
+
}
|
|
11099
|
+
});
|
|
8973
11100
|
Object.defineProperty(exports, "getRefillEligibilityDate", {
|
|
8974
11101
|
enumerable: true,
|
|
8975
11102
|
get: function() {
|
|
@@ -9054,12 +11181,36 @@ Object.defineProperty(exports, "googleSettings", {
|
|
|
9054
11181
|
return googleSettings;
|
|
9055
11182
|
}
|
|
9056
11183
|
});
|
|
11184
|
+
Object.defineProperty(exports, "hasActiveFiltersConfig", {
|
|
11185
|
+
enumerable: true,
|
|
11186
|
+
get: function() {
|
|
11187
|
+
return hasActiveFiltersConfig;
|
|
11188
|
+
}
|
|
11189
|
+
});
|
|
11190
|
+
Object.defineProperty(exports, "hasActivePiiFields", {
|
|
11191
|
+
enumerable: true,
|
|
11192
|
+
get: function() {
|
|
11193
|
+
return hasActivePiiFields;
|
|
11194
|
+
}
|
|
11195
|
+
});
|
|
11196
|
+
Object.defineProperty(exports, "hasActivePiiPatterns", {
|
|
11197
|
+
enumerable: true,
|
|
11198
|
+
get: function() {
|
|
11199
|
+
return hasActivePiiPatterns;
|
|
11200
|
+
}
|
|
11201
|
+
});
|
|
9057
11202
|
Object.defineProperty(exports, "hasPermissions", {
|
|
9058
11203
|
enumerable: true,
|
|
9059
11204
|
get: function() {
|
|
9060
11205
|
return hasPermissions;
|
|
9061
11206
|
}
|
|
9062
11207
|
});
|
|
11208
|
+
Object.defineProperty(exports, "hasProcessMCPServerConfig", {
|
|
11209
|
+
enumerable: true,
|
|
11210
|
+
get: function() {
|
|
11211
|
+
return hasProcessMCPServerConfig;
|
|
11212
|
+
}
|
|
11213
|
+
});
|
|
9063
11214
|
Object.defineProperty(exports, "hostImageIdSuffix", {
|
|
9064
11215
|
enumerable: true,
|
|
9065
11216
|
get: function() {
|
|
@@ -9168,6 +11319,30 @@ Object.defineProperty(exports, "isBedrockDocumentType", {
|
|
|
9168
11319
|
return isBedrockDocumentType;
|
|
9169
11320
|
}
|
|
9170
11321
|
});
|
|
11322
|
+
Object.defineProperty(exports, "isCodeEnvironmentMode", {
|
|
11323
|
+
enumerable: true,
|
|
11324
|
+
get: function() {
|
|
11325
|
+
return isCodeEnvironmentMode;
|
|
11326
|
+
}
|
|
11327
|
+
});
|
|
11328
|
+
Object.defineProperty(exports, "isCodeWorkspaceSelection", {
|
|
11329
|
+
enumerable: true,
|
|
11330
|
+
get: function() {
|
|
11331
|
+
return isCodeWorkspaceSelection;
|
|
11332
|
+
}
|
|
11333
|
+
});
|
|
11334
|
+
Object.defineProperty(exports, "isCodeWorkspaceSelectionErrorReason", {
|
|
11335
|
+
enumerable: true,
|
|
11336
|
+
get: function() {
|
|
11337
|
+
return isCodeWorkspaceSelectionErrorReason;
|
|
11338
|
+
}
|
|
11339
|
+
});
|
|
11340
|
+
Object.defineProperty(exports, "isCodeWorkspaceSelections", {
|
|
11341
|
+
enumerable: true,
|
|
11342
|
+
get: function() {
|
|
11343
|
+
return isCodeWorkspaceSelections;
|
|
11344
|
+
}
|
|
11345
|
+
});
|
|
9171
11346
|
Object.defineProperty(exports, "isDocumentSupportedProvider", {
|
|
9172
11347
|
enumerable: true,
|
|
9173
11348
|
get: function() {
|
|
@@ -9180,6 +11355,24 @@ Object.defineProperty(exports, "isImageVisionTool", {
|
|
|
9180
11355
|
return isImageVisionTool;
|
|
9181
11356
|
}
|
|
9182
11357
|
});
|
|
11358
|
+
Object.defineProperty(exports, "isKnownProviderIdentifier", {
|
|
11359
|
+
enumerable: true,
|
|
11360
|
+
get: function() {
|
|
11361
|
+
return isKnownProviderIdentifier;
|
|
11362
|
+
}
|
|
11363
|
+
});
|
|
11364
|
+
Object.defineProperty(exports, "isMediaSupportedProvider", {
|
|
11365
|
+
enumerable: true,
|
|
11366
|
+
get: function() {
|
|
11367
|
+
return isMediaSupportedProvider;
|
|
11368
|
+
}
|
|
11369
|
+
});
|
|
11370
|
+
Object.defineProperty(exports, "isMessageFileUpload", {
|
|
11371
|
+
enumerable: true,
|
|
11372
|
+
get: function() {
|
|
11373
|
+
return isMessageFileUpload;
|
|
11374
|
+
}
|
|
11375
|
+
});
|
|
9183
11376
|
Object.defineProperty(exports, "isMythosClassModel", {
|
|
9184
11377
|
enumerable: true,
|
|
9185
11378
|
get: function() {
|
|
@@ -9204,18 +11397,48 @@ Object.defineProperty(exports, "isPermissiveMimeConfig", {
|
|
|
9204
11397
|
return isPermissiveMimeConfig;
|
|
9205
11398
|
}
|
|
9206
11399
|
});
|
|
11400
|
+
Object.defineProperty(exports, "isProcessMCPServerConfig", {
|
|
11401
|
+
enumerable: true,
|
|
11402
|
+
get: function() {
|
|
11403
|
+
return isProcessMCPServerConfig;
|
|
11404
|
+
}
|
|
11405
|
+
});
|
|
11406
|
+
Object.defineProperty(exports, "isProcessMCPServerField", {
|
|
11407
|
+
enumerable: true,
|
|
11408
|
+
get: function() {
|
|
11409
|
+
return isProcessMCPServerField;
|
|
11410
|
+
}
|
|
11411
|
+
});
|
|
9207
11412
|
Object.defineProperty(exports, "isRemoteOidcUrlAllowed", {
|
|
9208
11413
|
enumerable: true,
|
|
9209
11414
|
get: function() {
|
|
9210
11415
|
return isRemoteOidcUrlAllowed;
|
|
9211
11416
|
}
|
|
9212
11417
|
});
|
|
11418
|
+
Object.defineProperty(exports, "isResponsesApiUpload", {
|
|
11419
|
+
enumerable: true,
|
|
11420
|
+
get: function() {
|
|
11421
|
+
return isResponsesApiUpload;
|
|
11422
|
+
}
|
|
11423
|
+
});
|
|
11424
|
+
Object.defineProperty(exports, "isSecureCodeEnvironmentControlURL", {
|
|
11425
|
+
enumerable: true,
|
|
11426
|
+
get: function() {
|
|
11427
|
+
return isSecureCodeEnvironmentControlURL;
|
|
11428
|
+
}
|
|
11429
|
+
});
|
|
9213
11430
|
Object.defineProperty(exports, "isSensitiveEnvVar", {
|
|
9214
11431
|
enumerable: true,
|
|
9215
11432
|
get: function() {
|
|
9216
11433
|
return isSensitiveEnvVar;
|
|
9217
11434
|
}
|
|
9218
11435
|
});
|
|
11436
|
+
Object.defineProperty(exports, "isSpeechProviderConfigured", {
|
|
11437
|
+
enumerable: true,
|
|
11438
|
+
get: function() {
|
|
11439
|
+
return isSpeechProviderConfigured;
|
|
11440
|
+
}
|
|
11441
|
+
});
|
|
9219
11442
|
Object.defineProperty(exports, "isUUID", {
|
|
9220
11443
|
enumerable: true,
|
|
9221
11444
|
get: function() {
|
|
@@ -9228,24 +11451,60 @@ Object.defineProperty(exports, "langfuseConfigSchema", {
|
|
|
9228
11451
|
return langfuseConfigSchema;
|
|
9229
11452
|
}
|
|
9230
11453
|
});
|
|
11454
|
+
Object.defineProperty(exports, "langfuseTraceConfigSchema", {
|
|
11455
|
+
enumerable: true,
|
|
11456
|
+
get: function() {
|
|
11457
|
+
return langfuseTraceConfigSchema;
|
|
11458
|
+
}
|
|
11459
|
+
});
|
|
11460
|
+
Object.defineProperty(exports, "listConfiguredSpeechProviders", {
|
|
11461
|
+
enumerable: true,
|
|
11462
|
+
get: function() {
|
|
11463
|
+
return listConfiguredSpeechProviders;
|
|
11464
|
+
}
|
|
11465
|
+
});
|
|
9231
11466
|
Object.defineProperty(exports, "loginPage", {
|
|
9232
11467
|
enumerable: true,
|
|
9233
11468
|
get: function() {
|
|
9234
11469
|
return loginPage;
|
|
9235
11470
|
}
|
|
9236
11471
|
});
|
|
11472
|
+
Object.defineProperty(exports, "materializeModelSpecEndpoints", {
|
|
11473
|
+
enumerable: true,
|
|
11474
|
+
get: function() {
|
|
11475
|
+
return materializeModelSpecEndpoints;
|
|
11476
|
+
}
|
|
11477
|
+
});
|
|
9237
11478
|
Object.defineProperty(exports, "mbToBytes", {
|
|
9238
11479
|
enumerable: true,
|
|
9239
11480
|
get: function() {
|
|
9240
11481
|
return mbToBytes;
|
|
9241
11482
|
}
|
|
9242
11483
|
});
|
|
11484
|
+
Object.defineProperty(exports, "mcpRefreshDefaults", {
|
|
11485
|
+
enumerable: true,
|
|
11486
|
+
get: function() {
|
|
11487
|
+
return mcpRefreshDefaults;
|
|
11488
|
+
}
|
|
11489
|
+
});
|
|
11490
|
+
Object.defineProperty(exports, "mediaSupportedProviders", {
|
|
11491
|
+
enumerable: true,
|
|
11492
|
+
get: function() {
|
|
11493
|
+
return mediaSupportedProviders;
|
|
11494
|
+
}
|
|
11495
|
+
});
|
|
9243
11496
|
Object.defineProperty(exports, "megabyte", {
|
|
9244
11497
|
enumerable: true,
|
|
9245
11498
|
get: function() {
|
|
9246
11499
|
return megabyte;
|
|
9247
11500
|
}
|
|
9248
11501
|
});
|
|
11502
|
+
Object.defineProperty(exports, "memoryFilterFieldSchema", {
|
|
11503
|
+
enumerable: true,
|
|
11504
|
+
get: function() {
|
|
11505
|
+
return memoryFilterFieldSchema;
|
|
11506
|
+
}
|
|
11507
|
+
});
|
|
9249
11508
|
Object.defineProperty(exports, "memorySchema", {
|
|
9250
11509
|
enumerable: true,
|
|
9251
11510
|
get: function() {
|
|
@@ -9258,6 +11517,12 @@ Object.defineProperty(exports, "mergeFileConfig", {
|
|
|
9258
11517
|
return mergeFileConfig;
|
|
9259
11518
|
}
|
|
9260
11519
|
});
|
|
11520
|
+
Object.defineProperty(exports, "messageFilterFieldSchema", {
|
|
11521
|
+
enumerable: true,
|
|
11522
|
+
get: function() {
|
|
11523
|
+
return messageFilterFieldSchema;
|
|
11524
|
+
}
|
|
11525
|
+
});
|
|
9261
11526
|
Object.defineProperty(exports, "messageFilterPiiSchema", {
|
|
9262
11527
|
enumerable: true,
|
|
9263
11528
|
get: function() {
|
|
@@ -9282,6 +11547,12 @@ Object.defineProperty(exports, "modelConfigSchema", {
|
|
|
9282
11547
|
return modelConfigSchema;
|
|
9283
11548
|
}
|
|
9284
11549
|
});
|
|
11550
|
+
Object.defineProperty(exports, "modelParameterFilterFieldSchema", {
|
|
11551
|
+
enumerable: true,
|
|
11552
|
+
get: function() {
|
|
11553
|
+
return modelParameterFilterFieldSchema;
|
|
11554
|
+
}
|
|
11555
|
+
});
|
|
9285
11556
|
Object.defineProperty(exports, "modelSpecSubagentsSchema", {
|
|
9286
11557
|
enumerable: true,
|
|
9287
11558
|
get: function() {
|
|
@@ -9306,6 +11577,12 @@ Object.defineProperty(exports, "normalizeMCPToolKey", {
|
|
|
9306
11577
|
return normalizeMCPToolKey;
|
|
9307
11578
|
}
|
|
9308
11579
|
});
|
|
11580
|
+
Object.defineProperty(exports, "normalizeSearxngEngines", {
|
|
11581
|
+
enumerable: true,
|
|
11582
|
+
get: function() {
|
|
11583
|
+
return normalizeSearxngEngines;
|
|
11584
|
+
}
|
|
11585
|
+
});
|
|
9309
11586
|
Object.defineProperty(exports, "normalizeServerName", {
|
|
9310
11587
|
enumerable: true,
|
|
9311
11588
|
get: function() {
|
|
@@ -9372,6 +11649,12 @@ Object.defineProperty(exports, "principalSchema", {
|
|
|
9372
11649
|
return principalSchema;
|
|
9373
11650
|
}
|
|
9374
11651
|
});
|
|
11652
|
+
Object.defineProperty(exports, "promptFilterFieldSchema", {
|
|
11653
|
+
enumerable: true,
|
|
11654
|
+
get: function() {
|
|
11655
|
+
return promptFilterFieldSchema;
|
|
11656
|
+
}
|
|
11657
|
+
});
|
|
9375
11658
|
Object.defineProperty(exports, "providerEndpointMap", {
|
|
9376
11659
|
enumerable: true,
|
|
9377
11660
|
get: function() {
|
|
@@ -9426,12 +11709,66 @@ Object.defineProperty(exports, "resetPassword", {
|
|
|
9426
11709
|
return resetPassword;
|
|
9427
11710
|
}
|
|
9428
11711
|
});
|
|
11712
|
+
Object.defineProperty(exports, "resolveAgentSkillsScope", {
|
|
11713
|
+
enumerable: true,
|
|
11714
|
+
get: function() {
|
|
11715
|
+
return resolveAgentSkillsScope;
|
|
11716
|
+
}
|
|
11717
|
+
});
|
|
11718
|
+
Object.defineProperty(exports, "resolveAllowedStatefulCodeEnvironments", {
|
|
11719
|
+
enumerable: true,
|
|
11720
|
+
get: function() {
|
|
11721
|
+
return resolveAllowedStatefulCodeEnvironments;
|
|
11722
|
+
}
|
|
11723
|
+
});
|
|
11724
|
+
Object.defineProperty(exports, "resolveCodeApprovalMode", {
|
|
11725
|
+
enumerable: true,
|
|
11726
|
+
get: function() {
|
|
11727
|
+
return resolveCodeApprovalMode;
|
|
11728
|
+
}
|
|
11729
|
+
});
|
|
11730
|
+
Object.defineProperty(exports, "resolveCodePermissionDecision", {
|
|
11731
|
+
enumerable: true,
|
|
11732
|
+
get: function() {
|
|
11733
|
+
return resolveCodePermissionDecision;
|
|
11734
|
+
}
|
|
11735
|
+
});
|
|
9429
11736
|
Object.defineProperty(exports, "resolveEndpointType", {
|
|
9430
11737
|
enumerable: true,
|
|
9431
11738
|
get: function() {
|
|
9432
11739
|
return resolveEndpointType;
|
|
9433
11740
|
}
|
|
9434
11741
|
});
|
|
11742
|
+
Object.defineProperty(exports, "resolveModelSpecEndpoint", {
|
|
11743
|
+
enumerable: true,
|
|
11744
|
+
get: function() {
|
|
11745
|
+
return resolveModelSpecEndpoint;
|
|
11746
|
+
}
|
|
11747
|
+
});
|
|
11748
|
+
Object.defineProperty(exports, "resolveSandboxFilename", {
|
|
11749
|
+
enumerable: true,
|
|
11750
|
+
get: function() {
|
|
11751
|
+
return resolveSandboxFilename;
|
|
11752
|
+
}
|
|
11753
|
+
});
|
|
11754
|
+
Object.defineProperty(exports, "resolveStatefulCodeEnvironment", {
|
|
11755
|
+
enumerable: true,
|
|
11756
|
+
get: function() {
|
|
11757
|
+
return resolveStatefulCodeEnvironment;
|
|
11758
|
+
}
|
|
11759
|
+
});
|
|
11760
|
+
Object.defineProperty(exports, "resolveTraceViewerConfig", {
|
|
11761
|
+
enumerable: true,
|
|
11762
|
+
get: function() {
|
|
11763
|
+
return resolveTraceViewerConfig;
|
|
11764
|
+
}
|
|
11765
|
+
});
|
|
11766
|
+
Object.defineProperty(exports, "resolveUseResponsesApi", {
|
|
11767
|
+
enumerable: true,
|
|
11768
|
+
get: function() {
|
|
11769
|
+
return resolveUseResponsesApi;
|
|
11770
|
+
}
|
|
11771
|
+
});
|
|
9435
11772
|
Object.defineProperty(exports, "resourcePermissionsResponseSchema", {
|
|
9436
11773
|
enumerable: true,
|
|
9437
11774
|
get: function() {
|
|
@@ -9486,6 +11823,12 @@ Object.defineProperty(exports, "setFileConfigRegexCompiler", {
|
|
|
9486
11823
|
return setFileConfigRegexCompiler;
|
|
9487
11824
|
}
|
|
9488
11825
|
});
|
|
11826
|
+
Object.defineProperty(exports, "setMaxSubagents", {
|
|
11827
|
+
enumerable: true,
|
|
11828
|
+
get: function() {
|
|
11829
|
+
return setMaxSubagents;
|
|
11830
|
+
}
|
|
11831
|
+
});
|
|
9489
11832
|
Object.defineProperty(exports, "setMessageFilterRegexValidator", {
|
|
9490
11833
|
enumerable: true,
|
|
9491
11834
|
get: function() {
|
|
@@ -9504,6 +11847,12 @@ Object.defineProperty(exports, "sharedFileDownload", {
|
|
|
9504
11847
|
return sharedFileDownload;
|
|
9505
11848
|
}
|
|
9506
11849
|
});
|
|
11850
|
+
Object.defineProperty(exports, "skillFilterFieldSchema", {
|
|
11851
|
+
enumerable: true,
|
|
11852
|
+
get: function() {
|
|
11853
|
+
return skillFilterFieldSchema;
|
|
11854
|
+
}
|
|
11855
|
+
});
|
|
9507
11856
|
Object.defineProperty(exports, "skillSyncConfigSchema", {
|
|
9508
11857
|
enumerable: true,
|
|
9509
11858
|
get: function() {
|
|
@@ -9540,6 +11889,24 @@ Object.defineProperty(exports, "splitToolCallName", {
|
|
|
9540
11889
|
return splitToolCallName;
|
|
9541
11890
|
}
|
|
9542
11891
|
});
|
|
11892
|
+
Object.defineProperty(exports, "stripServerNamePrefix", {
|
|
11893
|
+
enumerable: true,
|
|
11894
|
+
get: function() {
|
|
11895
|
+
return stripServerNamePrefix;
|
|
11896
|
+
}
|
|
11897
|
+
});
|
|
11898
|
+
Object.defineProperty(exports, "stripServerNamePrefixes", {
|
|
11899
|
+
enumerable: true,
|
|
11900
|
+
get: function() {
|
|
11901
|
+
return stripServerNamePrefixes;
|
|
11902
|
+
}
|
|
11903
|
+
});
|
|
11904
|
+
Object.defineProperty(exports, "subagentThreadLineageSchema", {
|
|
11905
|
+
enumerable: true,
|
|
11906
|
+
get: function() {
|
|
11907
|
+
return subagentThreadLineageSchema;
|
|
11908
|
+
}
|
|
11909
|
+
});
|
|
9543
11910
|
Object.defineProperty(exports, "summarizationConfigSchema", {
|
|
9544
11911
|
enumerable: true,
|
|
9545
11912
|
get: function() {
|
|
@@ -9678,6 +12045,24 @@ Object.defineProperty(exports, "toolApprovalPolicySchema", {
|
|
|
9678
12045
|
return toolApprovalPolicySchema;
|
|
9679
12046
|
}
|
|
9680
12047
|
});
|
|
12048
|
+
Object.defineProperty(exports, "toolArgumentFilterFieldSchema", {
|
|
12049
|
+
enumerable: true,
|
|
12050
|
+
get: function() {
|
|
12051
|
+
return toolArgumentFilterFieldSchema;
|
|
12052
|
+
}
|
|
12053
|
+
});
|
|
12054
|
+
Object.defineProperty(exports, "traceViewerDefaults", {
|
|
12055
|
+
enumerable: true,
|
|
12056
|
+
get: function() {
|
|
12057
|
+
return traceViewerDefaults;
|
|
12058
|
+
}
|
|
12059
|
+
});
|
|
12060
|
+
Object.defineProperty(exports, "traceViewerLimits", {
|
|
12061
|
+
enumerable: true,
|
|
12062
|
+
get: function() {
|
|
12063
|
+
return traceViewerLimits;
|
|
12064
|
+
}
|
|
12065
|
+
});
|
|
9681
12066
|
Object.defineProperty(exports, "transactionsSchema", {
|
|
9682
12067
|
enumerable: true,
|
|
9683
12068
|
get: function() {
|
|
@@ -9696,6 +12081,12 @@ Object.defineProperty(exports, "turnstileSchema", {
|
|
|
9696
12081
|
return turnstileSchema;
|
|
9697
12082
|
}
|
|
9698
12083
|
});
|
|
12084
|
+
Object.defineProperty(exports, "unattributedAssistantContentSchema", {
|
|
12085
|
+
enumerable: true,
|
|
12086
|
+
get: function() {
|
|
12087
|
+
return unattributedAssistantContentSchema;
|
|
12088
|
+
}
|
|
12089
|
+
});
|
|
9699
12090
|
Object.defineProperty(exports, "updateFeedback", {
|
|
9700
12091
|
enumerable: true,
|
|
9701
12092
|
get: function() {
|
|
@@ -9756,6 +12147,12 @@ Object.defineProperty(exports, "userKeyQuery", {
|
|
|
9756
12147
|
return userKeyQuery;
|
|
9757
12148
|
}
|
|
9758
12149
|
});
|
|
12150
|
+
Object.defineProperty(exports, "userSubmittedMessageFieldPathSchema", {
|
|
12151
|
+
enumerable: true,
|
|
12152
|
+
get: function() {
|
|
12153
|
+
return userSubmittedMessageFieldPathSchema;
|
|
12154
|
+
}
|
|
12155
|
+
});
|
|
9759
12156
|
Object.defineProperty(exports, "validateSettingDefinitions", {
|
|
9760
12157
|
enumerable: true,
|
|
9761
12158
|
get: function() {
|
|
@@ -9799,4 +12196,4 @@ Object.defineProperty(exports, "webSearchSchema", {
|
|
|
9799
12196
|
}
|
|
9800
12197
|
});
|
|
9801
12198
|
|
|
9802
|
-
//# sourceMappingURL=data-service-
|
|
12199
|
+
//# sourceMappingURL=data-service-CTX0tVO5.js.map
|