librechat-data-provider 0.8.521 → 0.8.522
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{data-service-pwrlWjJs.mjs → data-service-CaB7saTP.mjs} +1145 -37
- package/dist/data-service-CaB7saTP.mjs.map +1 -0
- package/dist/{data-service-DOIF4BkW.js → data-service-D5kHzBt-.js} +1588 -36
- package/dist/data-service-D5kHzBt-.js.map +1 -0
- package/dist/index.js +947 -36
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +825 -37
- package/dist/index.mjs.map +1 -1
- package/dist/react-query/index.js +2 -1
- package/dist/react-query/index.js.map +1 -1
- package/dist/react-query/index.mjs +2 -1
- package/dist/react-query/index.mjs.map +1 -1
- package/dist/types/accessPermissions.d.ts +4 -0
- package/dist/types/actions.d.ts +2 -2
- package/dist/types/agentToolOptions.d.ts +11 -0
- package/dist/types/api-endpoints.d.ts +18 -0
- package/dist/types/bedrock.d.ts +168 -0
- package/dist/types/cadence.d.ts +33 -0
- package/dist/types/codeEnvRef.d.ts +21 -0
- package/dist/types/config.d.ts +9060 -1135
- package/dist/types/data-service.d.ts +40 -2
- package/dist/types/file-config.d.ts +1 -0
- package/dist/types/filters.d.ts +1422 -0
- package/dist/types/generate.d.ts +79 -1
- package/dist/types/index.d.ts +10 -0
- package/dist/types/keys.d.ts +23 -2
- package/dist/types/langchain.d.ts +4 -0
- package/dist/types/limits.d.ts +13 -0
- package/dist/types/mcp.d.ts +299 -210
- package/dist/types/messages.d.ts +5 -0
- package/dist/types/models.d.ts +732 -68
- package/dist/types/parameterSettings.d.ts +5 -1
- package/dist/types/parsers.d.ts +10 -0
- package/dist/types/permissions.d.ts +42 -1
- package/dist/types/providers.d.ts +36 -0
- package/dist/types/request.d.ts +2 -2
- package/dist/types/roles.d.ts +34 -0
- package/dist/types/runSteps.d.ts +59 -0
- package/dist/types/schemas.d.ts +1191 -26
- package/dist/types/stateful-code.d.ts +7 -0
- package/dist/types/types/agents.d.ts +92 -7
- package/dist/types/types/assistants.d.ts +96 -5
- package/dist/types/types/files.d.ts +12 -2
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/insights.d.ts +62 -0
- package/dist/types/types/mutations.d.ts +1 -0
- package/dist/types/types/queries.d.ts +30 -2
- package/dist/types/types/queuedTurns.d.ts +870 -0
- package/dist/types/types/runs.d.ts +95 -4
- package/dist/types/types/schedules.d.ts +306 -0
- package/dist/types/types/skills.d.ts +9 -0
- package/dist/types/types/subagents.d.ts +159 -0
- package/dist/types/types/web.d.ts +12 -2
- package/dist/types/types.d.ts +61 -1
- package/package.json +4 -2
- package/dist/data-service-DOIF4BkW.js.map +0 -1
- package/dist/data-service-pwrlWjJs.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { $ as permissionEntrySchema, $a as tMessageSchema, $i as anthropicSettings, $n as supportsBalanceCheck, $r as imageTypeMapping, $t as azureGroupConfigsSchema, Aa as googleSettings, Ai as AuthType, An as isRemoteOidcUrlAllowed, Ao as extractEnvVariable, Ar as applicationMimeTypes, At as SKILL_SYNC_DEFAULT_DISCOVERY_DEPTH, B as MutationKeys, Ba as isParamEndpoint, Bi as ReasoningEffort, Bn as paramDefinitionSchema, Br as defaultSTTMimeTypes, Bt as SettingsViews, Ca as endpointSettings, Ci as OptionTypes, Cn as getConfigDefaults, Co as feedbackRatingSchema, Cr as FileSources, Ct as MAX_SUBAGENT_DEPTH, Da as googleBaseSchema, Di as generateOpenAISchema, Dn as imageGenTools, Do as getTagsForRating, Dr as loginPage, Dt as RateLimitPrefix, Ea as getSettingsKeys, Ei as generateGoogleSchema, En as getSchemaDefaults, Eo as getTagByKey, Er as buildLoginRedirectUrl, Et as OCRStrategy, F as request_default, Fa as isAssistantsEndpoint, Fi as ImageVisionTool, Fn as modelConfigSchema, Fr as codeInterpreterMimeTypes, Ft as SafeSearchTypes, G as PrincipalType, Ga as openRouterSchema, Gi as ThinkingDisplay, Gn as setMessageFilterRegexValidator, Gr as excelMimeTypes, Gt as VisionModes, H as AccessRoleIds, Ha as openAIBaseSchema, Hi as ReasoningParameterFormat, Hn as rateLimitSchema, Hr as documentParserMimeTypes, Ht as TTSProviders, I as getTokenHeader, Ia as isDocumentSupportedProvider, Ii as MYTHOS_CLASS_FAMILIES, In as modularEndpoints, Ir as codeInterpreterMimeTypesList, It as ScraperProviders, J as accessRoleToPermBits, Ja as tBannerSchema, Ji as agentsBaseSchema, Jn as specialVariables, Jr as fullMimeTypesList, Jt as alternateName, K as ResourceType, Ka as paramEndpoints, Ki as ThinkingLevel, Kn as skillSyncConfigSchema, Kr as fileConfig, Kt as agentsEndpointSchema, L as setAcceptLanguageHeader, La as isImageVisionTool, Li as MemoryScope, Ln as normalizeMCPToolKey, Lr as codeTypeMapping, Lt as SearchCategories, Ma as imageDetailValue, Mi as BedrockReasoningConfig, Mn as memorySchema, Mo as isSensitiveEnvVar, Mr as bedrockDocumentExtensions, Mt as SKILL_SYNC_MAX_INTERVAL_MINUTES, Na as inputTokensIncludesCache, Ni as EModelEndpoint, Nn as messageFilterPiiSchema, No as normalizeEndpointName, Nr as bedrockDocumentFormats, Nt as SKILL_SYNC_MIN_INTERVAL_MINUTES, Oa as googleGenConfigSchema, Oi as validateSettingDefinitions, On as initialModelsConfig, Oo as toMinimalFeedback, Or as registerPage, Ot as RerankerTypes, Pa as isAgentsEndpoint, Pi as ImageDetail, Pn as messageFilterSchema, Pr as bedrockDocumentMimeTypes, Pt as STTProviders, Q as permBitsToAccessLevel, Qa as tExampleSchema, Qi as anthropicSchema, Qn as summarizationTriggerSchema, Qr as imageMimeTypes, Qt as azureEndpointSchema, R as setTokenHeader, Ra as isMythosClassModel, Ri as Providers, Rn as normalizeServerName, Rr as convertStringsToRegex, Rt as SearchProviders, Sa as eVerbositySchema, Si as ComponentTypes, Sn as fileStrategiesSchema, So as FEEDBACK_TAGS, Sr as FileContext, St as LocalStorageKeys, Ta as getModelKey, Ti as generateDynamicSchema, Tn as getEndpointField, To as feedbackTagKeySchema, Tr as apiBaseUrl, Tt as MAX_SUBAGENT_RUN_CONFIGS, U as PermissionBits, Ua as openAISchema, Ui as ReasoningResponseKey, Un as resolveEndpointType, Ur as endpointFileConfigSchema, Ut as Time, V as QueryKeys, Va as isUUID, Vi as ReasoningMode, Vn as providerEndpointMap, Vr as defaultTextMimeTypes, Vt as SystemCategories, W as PrincipalModel, Wa as openAISettings, Wi as ReasoningSummary, Wn as retainRecentConfigSchema, Wr as excelFileTypes, Wt as ViolationTypes, X as getResourcePermissionsResponseSchema, Xa as tConversationTagSchema, Xi as agentsSettings, Xn as splitToolCallName, Xr as getEndpointFileConfig, Xt as assistantEndpointSchema, Y as effectivePermissionsResponseSchema, Ya as tConversationSchema, Yi as agentsSchema, Yn as splitMCPToolKey, Yr as getConfiguredMimeAccept, Yt as anthropicEndpointSchema, Z as hasPermissions, Za as tConvoUpdateSchema, Zi as anthropicBaseSchema, Zn as summarizationConfigSchema, Zr as imageExtRegex, Zt as azureBaseSchema, _a as eReasoningParameterFormatSchema, _i as getRefillEligibilityDate, _n as defaultSocialLogins, _o as hostImageIdSuffix, _r as StreamableHTTPOptionsSchema, _t as FetchTokenConfig, a as data_service_exports, aa as compactAgentsSchema, ai as mbToBytes, an as bedrockModels, ao as tSharedLinkSchema, ar as turnstileSchema, at as AgentCapabilities, ba as eThinkingDisplaySchema, bi as tModelSpecSchema, bn as fileSourceSchema, bo as FEEDBACK_RATINGS, br as AuthorizationTypeEnum, bt as InfiniteCollections, ca as defaultAgentFormValues, ci as mimeTypeAliases, cn as checkpointerTypeSchema, co as EToolResources, cr as vertexModelConfigSchema, ct as BASE_PRINCIPAL_CONFIG_SECTIONS, da as eAnthropicEffortSchema, di as setFileConfigRegexCompiler, dn as contextPruningSchema, do as RunStatus, dr as MCPOptionsSchema, dt as CohereConstants, ea as assistantSchema, ei as inferMimeType, en as azureGroupSchema, eo as tModelSpecPresetSchema, er as toolApprovalHookConfigSchema, et as principalSchema, fa as eImageDetailSchema, fi as supportedMimeTypes, fn as defaultAgentCapabilities, fo as StepStatus, fr as MCPServerUserInputSchema, ft as Constants, ga as eReasoningModeSchema, gi as REFILL_INTERVAL_UNITS, gn as defaultRetrievalModels, go as defaultOrderQuery, gr as StdioOptionsSchema, gt as ErrorTypes, ha as eReasoningEffortSchema, hi as videoMimeTypes, hn as defaultModels, ho as actionDomainSeparator, hr as SSEOptionsSchema, ht as EndpointURLs, ia as compactAgentsBaseSchema, ii as isPermissiveMimeConfig, in as bedrockGuardrailConfigSchema, io as tQueryParamsSchema, ir as turnstileOptionsSchema, it as AUTH_USER_DOC_BY_ID_PREFIX, ja as imageDetailNumeric, ji as BedrockProviders, jn as langfuseConfigSchema, jo as extractVariableName, jr as audioMimeTypes, jt as SKILL_SYNC_MAX_DISCOVERY_DEPTH, ka as googleSchema, ki as AnthropicEffort, kn as interfaceSchema, ko as envVarRegex, kr as sharedFileDownload, kt as RetentionMode, la as defaultAssistantFormValues, li as retrievalMimeTypes, ln as cloudfrontConfigSchema, lo as FilePurpose, lr as visionModels, lt as CacheKeys, ma as eReasoningContextSchema, mi as textMimeTypes, mn as defaultEndpoints, mo as actionDelimiter, mr as MCP_USER_INPUT_FIELDS, mt as EImageOutputType, na as cacheSubsetProviders, ni as isAnthropicTextDocumentType, nn as baseEndpointSchema, no as tPluginSchema, nr as toolApprovalPolicySchema, nt as updateResourcePermissionsRequestSchema, oa as compactAssistantSchema, oi as megabyte, on as buildServerNameAliases, oo as AnnotationTypes, or as validateVisionModel, ot as AuthKeys, pa as eModelEndpointSchema, pi as supportsFiles, pn as defaultAssistantsVersion, po as Tools, pr as MCPServersSchema, pt as DEFAULT_MEMORY_MAX_INPUT_TOKENS, q as accessRoleSchema, qa as removeNullishValues, qi as Verbosity, qn as skillSyncGitHubSourceSchema, qr as fileConfigSchema, qt as allowedAddressesSchema, ra as coerceNumber, ri as isBedrockDocumentType, rn as bedrockEndpointSchema, ro as tPresetSchema, rr as transactionsSchema, rt as updateResourcePermissionsResponseSchema, sa as compactGoogleSchema, si as mergeFileConfig, sn as checkpointerSchema, so as AssistantStreamEvents, sr as vertexAISchema, st as BASE_ONLY_CONFIG_SECTIONS, ta as authTypeSchema, ti as isAnthropicDocumentType, tn as balanceSchema, to as tPluginAuthConfigSchema, tr as toolApprovalModeSchema, tt as resourcePermissionsResponseSchema, ua as documentSupportedProviders, ui as retrievalMimeTypesList, un as configSchema, uo as MessageContentTypes, ur as webSearchSchema, ut as Capabilities, va as eReasoningResponseKeySchema, vi as modelSpecSubagentsSchema, vn as endpointSchema, vo as hostImageNamePrefix, vr as WebSocketOptionsSchema, vt as ForkOptions, wa as extendedModelEndpointSchema, wi as SettingTypes, wn as getDefaultParamsEndpoint, wo as feedbackSchema, wr as checkOpenAIStorage, wt as MAX_SUBAGENT_GRAPH_NODES, xa as eThinkingLevelSchema, xi as MAX_SUBAGENTS, xn as fileStorageSchema, xo as FEEDBACK_REASON_KEYS, xr as TokenExchangeMethodEnum, xt as KnownEndpoints, ya as eReasoningSummarySchema, yi as specsConfigSchema, yn as excludedKeys, yo as isActionTool, yr as AuthTypeEnum, yt as ImageDetailCost, z as DynamicQueryKeys, za as isOpenAILikeProvider, zi as ReasoningContext, zn as ocrSchema, zr as defaultOCRMimeTypes, zt as SettingsTabValues } from "./data-service-pwrlWjJs.mjs";
|
|
1
|
+
import { $ as permissionEntrySchema, $a as googleSchema, $i as BedrockReasoningConfig, $n as specialVariables, $o as feedbackSchema, $r as defaultTextMimeTypes, $s as normalizeEndpointName, $t as azureGroupConfigsSchema, Aa as defaultAgentFormValues, Ai as materializeModelSpecEndpoints, An as imageGenTools, Ao as tQueryParamsSchema, Ar as isProcessMCPServerField, As as feedbackFilterFieldSchema, At as SKILL_SYNC_DEFAULT_DISCOVERY_DEPTH, B as MutationKeys, Ba as eReasoningResponseKeySchema, Bi as getMaxSubagents, Bn as modularEndpoints, Bo as actionDelimiter, Br as registerPage, Bs as hasActivePiiPatterns, Bt as SettingsViews, Ca as authTypeSchema, Ci as setFileConfigRegexCompiler, Cn as fileSourceSchema, Co as tConvoUpdateSchema, Cr as MCP_USER_INPUT_FIELDS, Cs as SKILL_FILTER_FIELDS, Ct as MAX_SUBAGENT_DEPTH, Da as compactAgentsSchema, Di as videoMimeTypes, Dn as getDefaultParamsEndpoint, Do as tPluginAuthConfigSchema, Dr as WebSocketOptionsSchema, Ds as agentInstructionFilterFieldSchema, Dt as RateLimitPrefix, Ea as compactAgentsBaseSchema, Ei as textMimeTypes, En as getConfigDefaults, Eo as tModelSpecPresetSchema, Er as StreamableHTTPOptionsSchema, Es as actionMetadataFilterFieldSchema, Et as OCRStrategy, F as request_default, Fa as eModelEndpointSchema, Fi as MAX_CHAT_PROJECT_DESCRIPTION_LENGTH, Fn as langfuseConfigSchema, Fo as FilePurpose, Fr as FileSources, Fs as filterPiiStarterPatternSchema, Ft as SafeSearchTypes, G as PrincipalType, Ga as endpointSettings, Gi as clampSettingRange, Gn as paramDefinitionSchema, Go as isActionTool, Gr as bedrockDocumentFormats, Gs as skillFilterFieldSchema, Gt as VisionModes, H as AccessRoleIds, Ha as eThinkingDisplaySchema, Hi as ComponentTypes, Hn as normalizeSearxngEngines, Ho as defaultOrderQuery, Hr as applicationMimeTypes, Hs as messageFilterFieldSchema, Ht as TTSProviders, I as getTokenHeader, Ia as eReasoningContextSchema, Ii as MAX_CHAT_PROJECT_NAME_LENGTH, In as memorySchema, Io as MessageContentTypes, Ir as checkOpenAIStorage, Is as filtersConfigSchema, It as ScraperProviders, J as accessRoleToPermBits, Ja as getGoogleThinkingBudgetMax, Ji as generateOpenAISchema, Jn as resolveEndpointType, Jo as resolveStatefulCodeEnvironment, Jr as codeInterpreterMimeTypesList, Js as userSubmittedMessageFieldPathSchema, Jt as alternateName, K as ResourceType, Ka as extendedModelEndpointSchema, Ki as generateDynamicSchema, Kn as providerEndpointMap, Ko as STATEFUL_CODE_ENVIRONMENTS, Kr as bedrockDocumentMimeTypes, Ks as toolArgumentFilterFieldSchema, Kt as agentsEndpointSchema, L as setAcceptLanguageHeader, La as eReasoningEffortSchema, Li as MAX_GRAPH_SUBAGENT_MEMBERS, Ln as messageFilterPiiSchema, Lo as RunStatus, Lr as apiBaseUrl, Ls as getPiiRegexProgramSize, Lt as SearchCategories, Ma as documentSupportedProviders, Mi as resolveModelSpecEndpoint, Mn as interfaceSchema, Mo as AnnotationTypes, Mr as AuthorizationTypeEnum, Ms as filterPiiActionSchema, Mt as SKILL_SYNC_MAX_INTERVAL_MINUTES, Na as eAnthropicEffortSchema, Ni as specsConfigSchema, Nn as isRemoteOidcUrlAllowed, No as AssistantStreamEvents, Nr as TokenExchangeMethodEnum, Ns as filterPiiCustomPatternSchema, Nt as SKILL_SYNC_MIN_INTERVAL_MINUTES, Oa as compactAssistantSchema, Oi as REFILL_INTERVAL_UNITS, On as getEndpointField, Oo as tPluginSchema, Or as hasProcessMCPServerConfig, Os as conversationStarterFilterFieldSchema, Ot as RerankerTypes, Pa as eImageDetailSchema, Pi as tModelSpecSchema, Pn as isSecureCodeEnvironmentControlURL, Po as EToolResources, Pr as FileContext, Ps as filterPiiRegexSchema, Pt as STTProviders, Q as permBitsToAccessLevel, Qa as googleGenConfigSchema, Qi as BedrockProviders, Qn as skillSyncGitHubSourceSchema, Qo as feedbackRatingSchema, Qr as defaultSTTMimeTypes, Qs as isSensitiveEnvVar, Qt as azureEndpointSchema, R as setTokenHeader, Ra as eReasoningModeSchema, Ri as MAX_SUBAGENTS, Rn as messageFilterSchema, Ro as StepStatus, Rr as buildLoginRedirectUrl, Rs as hasActiveFiltersConfig, Rt as SearchProviders, Sa as assistantSchema, Si as retrievalMimeTypesList, Sn as excludedKeys, So as tConversationTagSchema, Sr as MCP_SERVER_TITLE_PATTERN, Ss as PROMPT_FILTER_FIELDS, St as LocalStorageKeys, Ta as coerceNumber, Ti as supportsFiles, Tn as fileStrategiesSchema, To as tMessageSchema, Tr as StdioOptionsSchema, Ts as TOOL_ARGUMENT_FILTER_FIELDS, Tt as MAX_SUBAGENT_RUN_CONFIGS, U as PermissionBits, Ua as eThinkingLevelSchema, Ui as OptionTypes, Un as normalizeServerName, Uo as hostImageIdSuffix, Ur as audioMimeTypes, Us as modelParameterFilterFieldSchema, Ut as Time, V as QueryKeys, Va as eReasoningSummarySchema, Vi as setMaxSubagents, Vn as normalizeMCPToolKey, Vo as actionDomainSeparator, Vr as sharedFileDownload, Vs as memoryFilterFieldSchema, Vt as SystemCategories, W as PrincipalModel, Wa as eVerbositySchema, Wi as SettingTypes, Wn as ocrSchema, Wo as hostImageNamePrefix, Wr as bedrockDocumentExtensions, Ws as promptFilterFieldSchema, Wt as ViolationTypes, X as getResourcePermissionsResponseSchema, Xa as getSettingsKeys, Xi as AnthropicEffort, Xn as setMessageFilterRegexValidator, Xo as FEEDBACK_REASON_KEYS, Xr as convertStringsToRegex, Xs as extractEnvVariable, Xt as assistantEndpointSchema, Y as effectivePermissionsResponseSchema, Ya as getModelKey, Yi as validateSettingDefinitions, Yn as retainRecentConfigSchema, Yo as FEEDBACK_RATINGS, Yr as codeTypeMapping, Ys as envVarRegex, Yt as anthropicEndpointSchema, Z as hasPermissions, Za as googleBaseSchema, Zi as AuthType, Zn as skillSyncConfigSchema, Zo as FEEDBACK_TAGS, Zr as defaultOCRMimeTypes, Zs as extractVariableName, Zt as azureBaseSchema, _a as agentsSchema, _i as mbToBytes, _n as defaultEndpoints, _o as removeNullishValues, _r as webSearchSchema, _s as MAX_PII_PATTERN_LABEL_LENGTH, _t as FetchTokenConfig, a as data_service_exports, aa as Providers, ai as fileConfigSchema, an as bedrockModels, ao as isAssistantsEndpoint, ar as summarizationTriggerSchema, as as AGENT_INSTRUCTION_FILTER_FIELDS, at as AgentCapabilities, ba as anthropicSchema, bi as mimeTypeAliases, bn as defaultSocialLogins, bo as tBannerSchema, br as MCPServersSchema, bs as MESSAGE_FILTER_FIELDS, bt as InfiniteCollections, ca as ReasoningMode, ci as getEndpointFileConfig, cn as checkpointerTypeSchema, co as isMythosClassModel, cr as toolApprovalModeSchema, cs as FEEDBACK_FILTER_FIELDS, ct as BASE_PRINCIPAL_CONFIG_SECTIONS, da as ReasoningSummary, di as imageTypeMapping, dn as codeEnvironmentUserConfigSchema, do as isUUID, dr as turnstileOptionsSchema, ds as HITL_MESSAGE_FILTER_FIELDS, dt as CohereConstants, ea as EModelEndpoint, ei as documentParserMimeTypes, en as azureGroupSchema, eo as googleSettings, er as splitMCPToolKey, es as feedbackTagKeySchema, et as principalSchema, fa as SkillsScope, fi as inferMimeType, fn as codeEnvironmentUserSettingsSchema, fo as openAIBaseSchema, fr as turnstileSchema, fs as MAX_PII_CUSTOM_PATTERNS_TOTAL, ft as Constants, ga as agentsBaseSchema, gi as isPermissiveMimeConfig, gn as defaultAssistantsVersion, go as paramEndpoints, gr as visionModels, gs as MAX_PII_PATTERN_ID_LENGTH, gt as ErrorTypes, ha as Verbosity, hi as isBedrockDocumentType, hn as defaultAgentCapabilities, ho as openRouterSchema, hr as vertexModelConfigSchema, hs as MAX_PII_PATTERNS_PER_SOURCE, ht as EndpointURLs, ia as MemoryScope, ii as fileConfig, in as bedrockGuardrailConfigSchema, io as isAgentsEndpoint, ir as summarizationConfigSchema, is as ACTION_METADATA_FILTER_FIELDS, it as AUTH_USER_DOC_BY_ID_PREFIX, ja as defaultAssistantFormValues, ji as modelSpecSubagentsSchema, jn as initialModelsConfig, jo as tSharedLinkSchema, jr as AuthTypeEnum, js as fileFilterFieldSchema, jt as SKILL_SYNC_MAX_DISCOVERY_DEPTH, ka as compactGoogleSchema, ki as getRefillEligibilityDate, kn as getSchemaDefaults, ko as tPresetSchema, kr as isProcessMCPServerConfig, ks as conversationTitleFilterFieldSchema, kt as RetentionMode, la as ReasoningParameterFormat, li as imageExtRegex, ln as cloudfrontConfigSchema, lo as isOpenAILikeProvider, lr as toolApprovalPolicySchema, ls as FILE_FILTER_FIELDS, lt as CacheKeys, ma as ThinkingLevel, mi as isAnthropicTextDocumentType, mn as contextPruningSchema, mo as openAISettings, mr as vertexAISchema, ms as MAX_PII_CUSTOM_REGEX_INSTRUCTIONS, mt as EImageOutputType, na as ImageVisionTool, ni as excelFileTypes, nn as baseEndpointSchema, no as imageDetailValue, nr as stripServerNamePrefix, ns as getTagsForRating, nt as updateResourcePermissionsRequestSchema, oa as ReasoningContext, oi as fullMimeTypesList, on as buildServerNameAliases, oo as isDocumentSupportedProvider, or as supportsBalanceCheck, os as CONVERSATION_STARTER_FILTER_FIELDS, ot as AuthKeys, pa as ThinkingDisplay, pi as isAnthropicDocumentType, pn as configSchema, po as openAISchema, pr as validateVisionModel, ps as MAX_PII_CUSTOM_REGEX_CHARACTERS, pt as DEFAULT_MEMORY_MAX_INPUT_TOKENS, q as accessRoleSchema, qa as getGoogleThinkingBudgetBounds, qi as generateGoogleSchema, qn as rateLimitSchema, qo as resolveAllowedStatefulCodeEnvironments, qr as codeInterpreterMimeTypes, qs as unattributedAssistantContentSchema, qt as allowedAddressesSchema, ra as MYTHOS_CLASS_FAMILIES, ri as excelMimeTypes, rn as bedrockEndpointSchema, ro as inputTokensIncludesCache, rr as stripServerNamePrefixes, rs as toMinimalFeedback, rt as updateResourcePermissionsResponseSchema, sa as ReasoningEffort, si as getConfiguredMimeAccept, sn as checkpointerSchema, so as isImageVisionTool, sr as toolApprovalHookConfigSchema, ss as CONVERSATION_TITLE_FILTER_FIELDS, st as BASE_ONLY_CONFIG_SECTIONS, ta as ImageDetail, ti as endpointFileConfigSchema, tn as balanceSchema, to as imageDetailNumeric, tr as splitToolCallName, ts as getTagByKey, tt as resourcePermissionsResponseSchema, ua as ReasoningResponseKey, ui as imageMimeTypes, un as codeEnvironmentPermissionDecisionSchema, uo as isParamEndpoint, ur as transactionsSchema, us as FILTER_PII_STARTER_PATTERNS, ut as Capabilities, va as agentsSettings, vi as megabyte, vn as defaultModels, vo as resolveAgentSkillsScope, vr as MCPOptionsSchema, vs as MAX_PII_PATTERN_LENGTH, vt as ForkOptions, wa as cacheSubsetProviders, wi as supportedMimeTypes, wn as fileStorageSchema, wo as tExampleSchema, wr as SSEOptionsSchema, ws as STORED_MESSAGE_FILTER_FIELDS, wt as MAX_SUBAGENT_GRAPH_NODES, xa as anthropicSettings, xi as retrievalMimeTypes, xn as endpointSchema, xo as tConversationSchema, xr as MCP_SERVER_TITLE_ERROR, xs as MODEL_PARAMETER_FILTER_FIELDS, xt as KnownEndpoints, ya as anthropicBaseSchema, yi as mergeFileConfig, yn as defaultRetrievalModels, yo as subagentThreadLineageSchema, yr as MCPServerUserInputSchema, ys as MEMORY_FILTER_FIELDS, yt as ImageDetailCost, z as DynamicQueryKeys, za as eReasoningParameterFormatSchema, zi as MAX_SUBAGENTS_CEILING, zn as modelConfigSchema, zo as Tools, zr as loginPage, zs as hasActivePiiFields, zt as SettingsTabValues } from "./data-service-CaB7saTP.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import dayjs from "dayjs";
|
|
4
4
|
import utc from "dayjs/plugin/utc.js";
|
|
5
5
|
import timezonePlugin from "dayjs/plugin/timezone.js";
|
|
6
|
+
import { Cron } from "croner";
|
|
6
7
|
import axios from "axios";
|
|
7
8
|
import { URL } from "url";
|
|
8
9
|
import crypto from "crypto";
|
|
@@ -184,6 +185,17 @@ function supportsContext1m(model) {
|
|
|
184
185
|
return false;
|
|
185
186
|
}
|
|
186
187
|
/**
|
|
188
|
+
* Checks whether a native Anthropic Claude model supports prompt caching.
|
|
189
|
+
*
|
|
190
|
+
* This uses the configured model ID directly. Resolving it through a token
|
|
191
|
+
* map first can collapse a newly released Claude model to the generic
|
|
192
|
+
* `claude-` fallback and incorrectly disable cache control.
|
|
193
|
+
*/
|
|
194
|
+
function supportsPromptCache(model) {
|
|
195
|
+
if (model.includes("claude-3-5-sonnet-latest") || model.includes("claude-3.5-sonnet-latest")) return false;
|
|
196
|
+
return /claude-3[-.]7/.test(model) || /claude-3[-.]5-(?:sonnet|haiku)/.test(model) || /claude-3-(?:sonnet|haiku|opus)?/.test(model) || /claude-(?:sonnet|opus|haiku)[-.]?(?:[4-9]|\d{2,})/.test(model) || /claude-(?:[4-9]|\d{2,})(?:[-.](?:sonnet|opus|haiku))?/.test(model) || isMythosClassModel(model);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
187
199
|
* A Bedrock Claude model ID may be prefixed (`anthropic.claude-*`,
|
|
188
200
|
* `us.anthropic.claude-*`, `global.anthropic.claude-*`) or bare (`claude-*`,
|
|
189
201
|
* used when the LibreChat model ID maps to an application inference profile).
|
|
@@ -638,11 +650,14 @@ let StepEvents = /* @__PURE__ */ function(StepEvents) {
|
|
|
638
650
|
StepEvents["ON_REASONING_DELTA"] = "on_reasoning_delta";
|
|
639
651
|
StepEvents["ON_RUN_STEP_DELTA"] = "on_run_step_delta";
|
|
640
652
|
StepEvents["ON_RUN_STEP_COMPLETED"] = "on_run_step_completed";
|
|
653
|
+
/** Terminal signal for a run step: closed with a status and timestamps. */
|
|
654
|
+
StepEvents["ON_RUN_STEP_CLOSED"] = "on_run_step_closed";
|
|
641
655
|
StepEvents["ON_SUMMARIZE_START"] = "on_summarize_start";
|
|
642
656
|
StepEvents["ON_SUMMARIZE_DELTA"] = "on_summarize_delta";
|
|
643
657
|
StepEvents["ON_SUMMARIZE_COMPLETE"] = "on_summarize_complete";
|
|
644
658
|
StepEvents["ON_SUBAGENT_UPDATE"] = "on_subagent_update";
|
|
645
659
|
StepEvents["ON_SANDBOX_STARTING"] = "on_sandbox_starting";
|
|
660
|
+
StepEvents["ON_PTC_TOOL_CALL"] = "on_ptc_tool_call";
|
|
646
661
|
return StepEvents;
|
|
647
662
|
}({});
|
|
648
663
|
/** Token-tracking event names streamed to the client (separate from StepEvents dispatch). */
|
|
@@ -683,6 +698,13 @@ let ActivityLabelEvents = /* @__PURE__ */ function(ActivityLabelEvents) {
|
|
|
683
698
|
ActivityLabelEvents["ON_ACTIVITY_LABEL"] = "on_activity_label";
|
|
684
699
|
return ActivityLabelEvents;
|
|
685
700
|
}({});
|
|
701
|
+
/** Live title updates for an existing reasoning content part. */
|
|
702
|
+
let ReasoningLabelEvents = /* @__PURE__ */ function(ReasoningLabelEvents) {
|
|
703
|
+
ReasoningLabelEvents["ON_REASONING_LABEL"] = "on_reasoning_label";
|
|
704
|
+
/** Internal durable budget reservation; clients intentionally do not render it. */
|
|
705
|
+
ReasoningLabelEvents["ON_REASONING_LABEL_ATTEMPT"] = "on_reasoning_label_attempt";
|
|
706
|
+
return ReasoningLabelEvents;
|
|
707
|
+
}({});
|
|
686
708
|
/**
|
|
687
709
|
* Full prompt token count for one completed model call — the EXACT context the
|
|
688
710
|
* model saw, provider-aware: additive providers (Bedrock) report `input_tokens`
|
|
@@ -958,6 +980,14 @@ function replaceSpecialVars({ text, user, now: inputNow, timezone }) {
|
|
|
958
980
|
return result;
|
|
959
981
|
}
|
|
960
982
|
/**
|
|
983
|
+
* Resolves the display label ("sender") for an ephemeral agent:
|
|
984
|
+
* `modelLabel` (user/preset) → model spec's `label` → endpoint config's
|
|
985
|
+
* `modelDisplayLabel` → `''` (lets consumers fall back to the model name).
|
|
986
|
+
*/
|
|
987
|
+
function getEphemeralSender({ modelLabel, specLabel, modelDisplayLabel }) {
|
|
988
|
+
return modelLabel ?? specLabel ?? modelDisplayLabel ?? "";
|
|
989
|
+
}
|
|
990
|
+
/**
|
|
961
991
|
* Encodes an ephemeral agent ID from endpoint, model, optional sender, and optional index.
|
|
962
992
|
* Uses __ to replace : (reserved in graph node names) and ___ to separate sender.
|
|
963
993
|
*
|
|
@@ -1249,7 +1279,106 @@ function mapGroupToAzureConfig({ groupName, groupMap }) {
|
|
|
1249
1279
|
return result;
|
|
1250
1280
|
}
|
|
1251
1281
|
//#endregion
|
|
1282
|
+
//#region src/langchain.ts
|
|
1283
|
+
/**
|
|
1284
|
+
* LangChain classifies a provider failure by mutating the error: it stamps `lc_error_code` and
|
|
1285
|
+
* appends `\n\nTroubleshooting URL: <docs url>\n` to the message. Both halves are handled here
|
|
1286
|
+
* because the server strips the URL before persisting the message, while the client still reads the
|
|
1287
|
+
* code back out of messages persisted before it did.
|
|
1288
|
+
*/
|
|
1289
|
+
const LANGCHAIN = "langchain";
|
|
1290
|
+
const ERROR_PATH = "/errors/";
|
|
1291
|
+
const TROUBLESHOOTING_LABEL = "Troubleshooting URL:";
|
|
1292
|
+
const WHITESPACE = /\s/;
|
|
1293
|
+
/** Provider errors cross untyped boundaries, so a `message` is not guaranteed to be a string. */
|
|
1294
|
+
function toMessageText(message) {
|
|
1295
|
+
if (typeof message === "string") return message;
|
|
1296
|
+
return message == null ? "" : String(message);
|
|
1297
|
+
}
|
|
1298
|
+
function isErrorCodeCharacter(character) {
|
|
1299
|
+
const code = character.charCodeAt(0);
|
|
1300
|
+
return character === "_" || code >= 65 && code <= 90 || code >= 97 && code <= 122;
|
|
1301
|
+
}
|
|
1302
|
+
function findTokenEnd(text, start, limit = text.length) {
|
|
1303
|
+
let end = start;
|
|
1304
|
+
while (end < limit && !WHITESPACE.test(text[end])) end += 1;
|
|
1305
|
+
return end;
|
|
1306
|
+
}
|
|
1307
|
+
function findErrorCode(text, searchableText, start, end) {
|
|
1308
|
+
const langChainIndex = searchableText.indexOf(LANGCHAIN, start);
|
|
1309
|
+
if (langChainIndex < 0 || langChainIndex >= end) return;
|
|
1310
|
+
let errorCode;
|
|
1311
|
+
let pathIndex = searchableText.indexOf(ERROR_PATH, langChainIndex + 9);
|
|
1312
|
+
while (pathIndex >= 0 && pathIndex < end) {
|
|
1313
|
+
const codeStart = pathIndex + 8;
|
|
1314
|
+
let codeEnd = codeStart;
|
|
1315
|
+
while (codeEnd < end && isErrorCodeCharacter(text[codeEnd])) codeEnd += 1;
|
|
1316
|
+
if (codeEnd > codeStart) errorCode = {
|
|
1317
|
+
start: codeStart,
|
|
1318
|
+
end: codeEnd
|
|
1319
|
+
};
|
|
1320
|
+
pathIndex = searchableText.indexOf(ERROR_PATH, Math.max(codeStart, codeEnd));
|
|
1321
|
+
}
|
|
1322
|
+
return errorCode;
|
|
1323
|
+
}
|
|
1324
|
+
/** Removes LangChain's appended docs URL so provider text carries no third-party attribution. */
|
|
1325
|
+
function stripLangChainTroubleshootingUrl(message) {
|
|
1326
|
+
const text = toMessageText(message);
|
|
1327
|
+
const parts = [];
|
|
1328
|
+
let copiedUntil = 0;
|
|
1329
|
+
let searchFrom = 0;
|
|
1330
|
+
while (searchFrom < text.length) {
|
|
1331
|
+
const labelStart = text.indexOf(TROUBLESHOOTING_LABEL, searchFrom);
|
|
1332
|
+
if (labelStart < 0) break;
|
|
1333
|
+
let matchStart = labelStart;
|
|
1334
|
+
while (matchStart > copiedUntil && WHITESPACE.test(text[matchStart - 1])) matchStart -= 1;
|
|
1335
|
+
let urlStart = labelStart + 20;
|
|
1336
|
+
while (urlStart < text.length && WHITESPACE.test(text[urlStart])) urlStart += 1;
|
|
1337
|
+
if (!text.startsWith("https://", urlStart) && !text.startsWith("http://", urlStart)) {
|
|
1338
|
+
searchFrom = urlStart;
|
|
1339
|
+
continue;
|
|
1340
|
+
}
|
|
1341
|
+
const urlEnd = findTokenEnd(text, urlStart);
|
|
1342
|
+
const errorCode = findErrorCode(text, text, urlStart, urlEnd);
|
|
1343
|
+
if (errorCode == null) {
|
|
1344
|
+
searchFrom = urlEnd;
|
|
1345
|
+
continue;
|
|
1346
|
+
}
|
|
1347
|
+
let matchEnd = errorCode.end;
|
|
1348
|
+
if (text[matchEnd] === "/") matchEnd += 1;
|
|
1349
|
+
while (matchEnd < text.length && WHITESPACE.test(text[matchEnd])) matchEnd += 1;
|
|
1350
|
+
parts.push(text.slice(copiedUntil, matchStart), " ");
|
|
1351
|
+
copiedUntil = matchEnd;
|
|
1352
|
+
searchFrom = matchEnd;
|
|
1353
|
+
}
|
|
1354
|
+
parts.push(text.slice(copiedUntil));
|
|
1355
|
+
return parts.join("").trim();
|
|
1356
|
+
}
|
|
1357
|
+
/** The classification LangChain encoded in the docs URL it appended, when the text carries one. */
|
|
1358
|
+
function parseLangChainErrorCode(message) {
|
|
1359
|
+
const text = toMessageText(message);
|
|
1360
|
+
const searchableText = text.toLowerCase();
|
|
1361
|
+
let searchFrom = 0;
|
|
1362
|
+
while (searchFrom < text.length) {
|
|
1363
|
+
const langChainIndex = searchableText.indexOf(LANGCHAIN, searchFrom);
|
|
1364
|
+
if (langChainIndex < 0) return;
|
|
1365
|
+
const tokenEnd = findTokenEnd(text, langChainIndex);
|
|
1366
|
+
const errorCode = findErrorCode(text, searchableText, langChainIndex, tokenEnd);
|
|
1367
|
+
if (errorCode != null) return text.slice(errorCode.start, errorCode.end).toUpperCase();
|
|
1368
|
+
searchFrom = tokenEnd + 1;
|
|
1369
|
+
}
|
|
1370
|
+
}
|
|
1371
|
+
//#endregion
|
|
1252
1372
|
//#region src/messages.ts
|
|
1373
|
+
/** A generated reasoning title describes the text as it existed at generation time.
|
|
1374
|
+
* Any manual edit or merge into a different reasoning step invalidates the entire
|
|
1375
|
+
* title revision domain while preserving unrelated content metadata. */
|
|
1376
|
+
function stripReasoningLabelMetadata(part) {
|
|
1377
|
+
if (part.type !== "think") return part;
|
|
1378
|
+
const { reasoning_label: _label, reasoning_label_step_id: _stepId, reasoning_label_attempts: _attempts, reasoning_label_submitted_chars: _submittedChars, reasoning_label_revision: _revision, reasoning_label_status: _status, ...unlabeledPart } = part;
|
|
1379
|
+
return unlabeledPart;
|
|
1380
|
+
}
|
|
1381
|
+
const treeCache = /* @__PURE__ */ new WeakMap();
|
|
1253
1382
|
/**
|
|
1254
1383
|
* Builds the render tree from the flat messages array. Order-robust: live
|
|
1255
1384
|
* stream/steer/preempt cache writes can momentarily place a child before its
|
|
@@ -1260,6 +1389,11 @@ function mapGroupToAzureConfig({ groupName, groupMap }) {
|
|
|
1260
1389
|
*/
|
|
1261
1390
|
function buildTree({ messages, fileMap }) {
|
|
1262
1391
|
if (messages === null) return null;
|
|
1392
|
+
const cached = treeCache.get(messages);
|
|
1393
|
+
if (cached) {
|
|
1394
|
+
if (fileMap == null && cached.bare) return cached.bare;
|
|
1395
|
+
if (fileMap != null && cached.fileMap === fileMap && cached.hydrated) return cached.hydrated;
|
|
1396
|
+
}
|
|
1263
1397
|
const messageMap = {};
|
|
1264
1398
|
const orderedMessages = [];
|
|
1265
1399
|
const rootMessages = [];
|
|
@@ -1313,7 +1447,69 @@ function buildTree({ messages, fileMap }) {
|
|
|
1313
1447
|
rootMessages.push(extendedMessage);
|
|
1314
1448
|
assignDepths(extendedMessage);
|
|
1315
1449
|
}
|
|
1316
|
-
|
|
1450
|
+
const tree = rootMessages;
|
|
1451
|
+
const entry = cached ?? {};
|
|
1452
|
+
if (fileMap == null) entry.bare = tree;
|
|
1453
|
+
else {
|
|
1454
|
+
entry.fileMap = fileMap;
|
|
1455
|
+
entry.hydrated = tree;
|
|
1456
|
+
}
|
|
1457
|
+
if (!cached) treeCache.set(messages, entry);
|
|
1458
|
+
return tree;
|
|
1459
|
+
}
|
|
1460
|
+
//#endregion
|
|
1461
|
+
//#region src/runSteps.ts
|
|
1462
|
+
/**
|
|
1463
|
+
* Below this, a duration is noise rather than information: sub-second tool
|
|
1464
|
+
* calls are the common case, and labelling every one of them `· 0.3s` adds a
|
|
1465
|
+
* moving number to the end of most cards without telling the reader anything
|
|
1466
|
+
* they could act on. Callers use {@link isReportableRunStepDuration} rather
|
|
1467
|
+
* than comparing against this directly.
|
|
1468
|
+
*/
|
|
1469
|
+
const MIN_REPORTABLE_RUN_STEP_DURATION_MS = 1e3;
|
|
1470
|
+
/**
|
|
1471
|
+
* Wall-clock duration of a run step, derived from the terminal
|
|
1472
|
+
* `on_run_step_closed` event.
|
|
1473
|
+
*
|
|
1474
|
+
* Returns `undefined` rather than a fallback whenever the value would be a
|
|
1475
|
+
* guess, because a wrong duration is worse than an absent one — an absent one
|
|
1476
|
+
* renders nothing, a wrong one is indistinguishable from a real measurement:
|
|
1477
|
+
*
|
|
1478
|
+
* - `created_at` is optional on the event; emitters that do not know when the
|
|
1479
|
+
* step opened cannot have their duration inferred from anything else.
|
|
1480
|
+
* - A negative result means the two timestamps came from clocks that disagree.
|
|
1481
|
+
* That is not hypothetical: since `@librechat/agents` v3.6.0 a step can be
|
|
1482
|
+
* opened in one process and closed in another after a checkpoint resume, so
|
|
1483
|
+
* the two stamps can legitimately originate on different machines.
|
|
1484
|
+
* - Non-finite input is treated as absent instead of propagating `NaN` into
|
|
1485
|
+
* rendering.
|
|
1486
|
+
*
|
|
1487
|
+
* Known limits, accepted rather than guessed at: only the negative direction
|
|
1488
|
+
* of clock skew is detectable from a single stamp pair — positive skew
|
|
1489
|
+
* inflates the result and cannot be distinguished from a genuinely long
|
|
1490
|
+
* step. And the value is wall-clock elapsed between open and close, so a
|
|
1491
|
+
* step held open across a suspension (a checkpoint resume, a HITL approval
|
|
1492
|
+
* wait) includes that held-open time. Both are properties of the only data
|
|
1493
|
+
* available, not derivation bugs.
|
|
1494
|
+
*/
|
|
1495
|
+
function getRunStepDurationMs(closed) {
|
|
1496
|
+
const { created_at: createdAt, closed_at: closedAt } = closed;
|
|
1497
|
+
if (typeof createdAt !== "number" || typeof closedAt !== "number") return;
|
|
1498
|
+
if (!Number.isFinite(createdAt) || !Number.isFinite(closedAt)) return;
|
|
1499
|
+
const durationMs = closedAt - createdAt;
|
|
1500
|
+
return durationMs >= 0 ? durationMs : void 0;
|
|
1501
|
+
}
|
|
1502
|
+
/**
|
|
1503
|
+
* Whether a derived duration is worth showing to the reader.
|
|
1504
|
+
*
|
|
1505
|
+
* This is a presentation judgment, so it belongs at render time only. The
|
|
1506
|
+
* stamp sites persist the raw {@link getRunStepDurationMs} value instead of
|
|
1507
|
+
* pre-filtering through this — thresholding at write time would bake a
|
|
1508
|
+
* display rule into stored data, making "fast" indistinguishable from "not
|
|
1509
|
+
* derivable" and unrecoverable if the rule ever changes.
|
|
1510
|
+
*/
|
|
1511
|
+
function isReportableRunStepDuration(durationMs) {
|
|
1512
|
+
return typeof durationMs === "number" && durationMs >= 1e3;
|
|
1317
1513
|
}
|
|
1318
1514
|
//#endregion
|
|
1319
1515
|
//#region src/artifacts.ts
|
|
@@ -4486,6 +4682,10 @@ let PermissionTypes = /* @__PURE__ */ function(PermissionTypes) {
|
|
|
4486
4682
|
* Type for Shared Link Permissions
|
|
4487
4683
|
*/
|
|
4488
4684
|
PermissionTypes["SHARED_LINKS"] = "SHARED_LINKS";
|
|
4685
|
+
/**
|
|
4686
|
+
* Type for Scheduled Chats Permissions
|
|
4687
|
+
*/
|
|
4688
|
+
PermissionTypes["SCHEDULES"] = "SCHEDULES";
|
|
4489
4689
|
return PermissionTypes;
|
|
4490
4690
|
}({});
|
|
4491
4691
|
/**
|
|
@@ -4509,11 +4709,20 @@ const PERMISSION_TYPE_INTERFACE_FIELDS = {
|
|
|
4509
4709
|
["MCP_SERVERS"]: "mcpServers",
|
|
4510
4710
|
["REMOTE_AGENTS"]: "remoteAgents",
|
|
4511
4711
|
["SKILLS"]: "skills",
|
|
4512
|
-
["SHARED_LINKS"]: "sharedLinks"
|
|
4712
|
+
["SHARED_LINKS"]: "sharedLinks",
|
|
4713
|
+
["SCHEDULES"]: "schedules"
|
|
4513
4714
|
};
|
|
4514
4715
|
/** Set of interface config field names that correspond to role permissions. */
|
|
4515
4716
|
const INTERFACE_PERMISSION_FIELDS = new Set(Object.values(PERMISSION_TYPE_INTERFACE_FIELDS));
|
|
4516
4717
|
/**
|
|
4718
|
+
* Interface fields that seed a permission (use/create) BUT also carry runtime
|
|
4719
|
+
* config that must survive DB/tenant/user overrides. For these, override
|
|
4720
|
+
* sanitizers strip only the permission sub-keys (use/create) from the object
|
|
4721
|
+
* form and PRESERVE the boolean form — for `schedules`, `interface.schedules: false`
|
|
4722
|
+
* is the runtime feature disable that `getLimits` reads, not a permission toggle.
|
|
4723
|
+
*/
|
|
4724
|
+
const RUNTIME_CONFIG_INTERFACE_FIELDS = new Set(["schedules"]);
|
|
4725
|
+
/**
|
|
4517
4726
|
* YAML sub-keys within composite interface permission fields that map to permission bits.
|
|
4518
4727
|
* When an interface permission field is an object, only these sub-keys are stripped from
|
|
4519
4728
|
* DB overrides — other sub-keys (like `placeholder`, `trustCheckbox`) are UI-only and pass through.
|
|
@@ -4614,6 +4823,10 @@ const skillPermissionsSchema = z.object({
|
|
|
4614
4823
|
["SHARE"]: z.boolean().default(false),
|
|
4615
4824
|
["SHARE_PUBLIC"]: z.boolean().default(false)
|
|
4616
4825
|
});
|
|
4826
|
+
const schedulesPermissionsSchema = z.object({
|
|
4827
|
+
["USE"]: z.boolean().default(true),
|
|
4828
|
+
["CREATE"]: z.boolean().default(true)
|
|
4829
|
+
});
|
|
4617
4830
|
const sharedLinksPermissionsSchema = z.object({
|
|
4618
4831
|
["CREATE"]: z.boolean().default(true),
|
|
4619
4832
|
["SHARE"]: z.boolean().default(true),
|
|
@@ -4635,7 +4848,8 @@ const permissionsSchema = z.object({
|
|
|
4635
4848
|
["MCP_SERVERS"]: mcpServersPermissionsSchema,
|
|
4636
4849
|
["REMOTE_AGENTS"]: remoteAgentsPermissionsSchema,
|
|
4637
4850
|
["SKILLS"]: skillPermissionsSchema,
|
|
4638
|
-
["SHARED_LINKS"]: sharedLinksPermissionsSchema
|
|
4851
|
+
["SHARED_LINKS"]: sharedLinksPermissionsSchema,
|
|
4852
|
+
["SCHEDULES"]: schedulesPermissionsSchema
|
|
4639
4853
|
});
|
|
4640
4854
|
//#endregion
|
|
4641
4855
|
//#region src/roles.ts
|
|
@@ -4716,6 +4930,10 @@ const defaultRolesSchema = z.object({
|
|
|
4716
4930
|
["CREATE"]: z.boolean().default(true),
|
|
4717
4931
|
["SHARE"]: z.boolean().default(true),
|
|
4718
4932
|
["SHARE_PUBLIC"]: z.boolean().default(true)
|
|
4933
|
+
}),
|
|
4934
|
+
["SCHEDULES"]: schedulesPermissionsSchema.extend({
|
|
4935
|
+
["USE"]: z.boolean().default(true),
|
|
4936
|
+
["CREATE"]: z.boolean().default(true)
|
|
4719
4937
|
})
|
|
4720
4938
|
})
|
|
4721
4939
|
}),
|
|
@@ -4789,6 +5007,10 @@ const roleDefaults = defaultRolesSchema.parse({
|
|
|
4789
5007
|
["CREATE"]: true,
|
|
4790
5008
|
["SHARE"]: true,
|
|
4791
5009
|
["SHARE_PUBLIC"]: true
|
|
5010
|
+
},
|
|
5011
|
+
["SCHEDULES"]: {
|
|
5012
|
+
["USE"]: true,
|
|
5013
|
+
["CREATE"]: true
|
|
4792
5014
|
}
|
|
4793
5015
|
}
|
|
4794
5016
|
},
|
|
@@ -4844,6 +5066,10 @@ const roleDefaults = defaultRolesSchema.parse({
|
|
|
4844
5066
|
["CREATE"]: true,
|
|
4845
5067
|
["SHARE"]: true,
|
|
4846
5068
|
["SHARE_PUBLIC"]: true
|
|
5069
|
+
},
|
|
5070
|
+
["SCHEDULES"]: {
|
|
5071
|
+
["USE"]: true,
|
|
5072
|
+
["CREATE"]: true
|
|
4847
5073
|
}
|
|
4848
5074
|
}
|
|
4849
5075
|
}
|
|
@@ -4863,6 +5089,308 @@ let InvocationMode = /* @__PURE__ */ function(InvocationMode) {
|
|
|
4863
5089
|
return InvocationMode;
|
|
4864
5090
|
}({});
|
|
4865
5091
|
//#endregion
|
|
5092
|
+
//#region src/types/schedules.ts
|
|
5093
|
+
/** Cadences the dialog builds from structured pickers (hour, minute, weekday). */
|
|
5094
|
+
const scheduleStructuredFrequencies = [
|
|
5095
|
+
"hourly",
|
|
5096
|
+
"daily",
|
|
5097
|
+
"weekdays",
|
|
5098
|
+
"weekly"
|
|
5099
|
+
];
|
|
5100
|
+
const scheduleFrequencies = [...scheduleStructuredFrequencies, "cron"];
|
|
5101
|
+
/** Bounds a stored expression. Generous for five fields, because each one can hold a
|
|
5102
|
+
* list: an every-minute-of-the-hour cadence spelled out runs past two hundred chars. */
|
|
5103
|
+
const SCHEDULE_CRON_MAX_LENGTH = 256;
|
|
5104
|
+
const scheduleTargets = ["new"];
|
|
5105
|
+
const structuredCadenceSchema = z.object({
|
|
5106
|
+
frequency: z.enum(scheduleStructuredFrequencies),
|
|
5107
|
+
hour: z.number().int().min(0).max(23),
|
|
5108
|
+
minute: z.number().int().min(0).max(59),
|
|
5109
|
+
daysOfWeek: z.array(z.number().int().min(0).max(6)).min(1).max(7).transform((days) => Array.from(new Set(days))).optional()
|
|
5110
|
+
});
|
|
5111
|
+
/**
|
|
5112
|
+
* A raw cron expression carries its own hour and minute, so it cannot share the
|
|
5113
|
+
* structured shape: there is no single `hour` for `0 9,17 * * 1-5`. Syntax is
|
|
5114
|
+
* validated server-side by croner, the same parser the engine fires from, rather
|
|
5115
|
+
* than by a regex that would accept patterns croner then rejects at fire time.
|
|
5116
|
+
*/
|
|
5117
|
+
const cronCadenceSchema = z.object({
|
|
5118
|
+
frequency: z.literal("cron"),
|
|
5119
|
+
expression: z.string().trim().min(1).max(256)
|
|
5120
|
+
});
|
|
5121
|
+
const scheduleCadenceSchema = z.discriminatedUnion("frequency", [structuredCadenceSchema, cronCadenceSchema]);
|
|
5122
|
+
const isCronCadence = (cadence) => cadence.frequency === "cron";
|
|
5123
|
+
const createSchedulePayloadSchema = z.object({
|
|
5124
|
+
name: z.string().trim().min(1).max(256),
|
|
5125
|
+
prompt: z.string().trim().min(1).max(32e3),
|
|
5126
|
+
agent_id: z.string().trim().min(1),
|
|
5127
|
+
cadence: scheduleCadenceSchema,
|
|
5128
|
+
timezone: z.string().min(1),
|
|
5129
|
+
target: z.enum(scheduleTargets).default("new"),
|
|
5130
|
+
file_ids: z.array(z.string()).max(10).transform((ids) => Array.from(new Set(ids))).optional(),
|
|
5131
|
+
/**
|
|
5132
|
+
* Chat project each run's conversation is filed under. `null` clears the scope.
|
|
5133
|
+
* Ownership is checked server-side at write time and again at every fire, so a
|
|
5134
|
+
* deleted project disables the schedule instead of silently filing runs loose.
|
|
5135
|
+
*/
|
|
5136
|
+
chatProjectId: z.string().trim().min(1).nullable().optional(),
|
|
5137
|
+
enabled: z.boolean().default(true),
|
|
5138
|
+
/**
|
|
5139
|
+
* Client-generated key making creation idempotent across retries. Creation commits
|
|
5140
|
+
* the row and arms it in two writes, so a failure between them leaves the client
|
|
5141
|
+
* unable to tell whether anything persisted; retrying blind can produce two recurring
|
|
5142
|
+
* schedules. A retry carrying the same key resolves to the original row instead.
|
|
5143
|
+
* REQUIRED: an optional key preserves the keyless duplicate path for any client
|
|
5144
|
+
* that omits it, which is exactly the failure the key exists to close.
|
|
5145
|
+
*/
|
|
5146
|
+
clientRequestId: z.string().trim().min(1).max(128)
|
|
5147
|
+
});
|
|
5148
|
+
/** Idempotency is a property of the CREATE attempt, not of the schedule's config. */
|
|
5149
|
+
const updateSchedulePayloadSchema = createSchedulePayloadSchema.omit({ clientRequestId: true }).partial().extend({
|
|
5150
|
+
/**
|
|
5151
|
+
* The configRevision the client's edit was computed from (captured when the
|
|
5152
|
+
* dialog opened). The server fences the update on it, so a concurrent edit
|
|
5153
|
+
* from another tab answers 409 instead of being silently overwritten by a
|
|
5154
|
+
* payload rebuilt from a stale snapshot (cadence is sent whole, so the
|
|
5155
|
+
* server-side fresh-read fence alone cannot detect this).
|
|
5156
|
+
*/
|
|
5157
|
+
expectedConfigRevision: z.number().int().min(0).optional() });
|
|
5158
|
+
//#endregion
|
|
5159
|
+
//#region src/cadence.ts
|
|
5160
|
+
/** Mirrors the server default when a weekly cadence omits `daysOfWeek`. */
|
|
5161
|
+
const WEEKLY_DEFAULT_DAY = 1;
|
|
5162
|
+
/**
|
|
5163
|
+
* Minute, hour, day of month, month, day of week. croner also reads a six-field form
|
|
5164
|
+
* carrying seconds and a seven-field form that pins a year, and both are refused.
|
|
5165
|
+
* Seconds would promise a precision the runtime does not keep: the engine polls on a
|
|
5166
|
+
* thirty-second tick and offsets each schedule by up to two minutes of jitter. A pinned
|
|
5167
|
+
* year makes a cadence that runs out, and every caller here treats "no next occurrence"
|
|
5168
|
+
* as a cadence it cannot read.
|
|
5169
|
+
*/
|
|
5170
|
+
const CRON_FIELD_COUNT = 5;
|
|
5171
|
+
/**
|
|
5172
|
+
* Spring-forward compresses consecutive wall-clock occurrences, so the ENFORCEABLE
|
|
5173
|
+
* minimum for day-and-longer gaps is the nominal gap minus the largest real-world
|
|
5174
|
+
* transition: two hours (Antarctica/Troll; every other zone shifts at most one).
|
|
5175
|
+
* A floor set exactly at the nominal value would otherwise admit a schedule that
|
|
5176
|
+
* genuinely violates it once a year. Hourly gaps are unaffected (the skipped hours
|
|
5177
|
+
* lengthen, never shorten, the gap between occurrences).
|
|
5178
|
+
*/
|
|
5179
|
+
const DST_COMPRESSION_MINUTES = 120;
|
|
5180
|
+
/**
|
|
5181
|
+
* Occurrences sampled when measuring a cron expression's tightest gap. The floor
|
|
5182
|
+
* exists to reject expressions that fire too OFTEN, and a dense pattern reveals
|
|
5183
|
+
* its short gap within the first few occurrences, so a small window answers the
|
|
5184
|
+
* question this guards. Known limit: this is a bounded probe, not the exhaustive
|
|
5185
|
+
* proof the structured formulas give. An expression that is sparse for the next
|
|
5186
|
+
* `CRON_PROBE_OCCURRENCES` runs and dense later would pass here and be caught by
|
|
5187
|
+
* the fire-time recheck instead.
|
|
5188
|
+
*/
|
|
5189
|
+
const CRON_PROBE_OCCURRENCES = 32;
|
|
5190
|
+
/** Enough to span four nominal gaps from an anchor two gaps before a transition,
|
|
5191
|
+
* which is what guarantees the straddling pair falls inside the window. */
|
|
5192
|
+
const TRANSITION_PROBE_OCCURRENCES = 5;
|
|
5193
|
+
/**
|
|
5194
|
+
* Compiles a cadence to the cron expression the engine fires from. Shared rather
|
|
5195
|
+
* than server-owned because the dialog previews the next runs, validates the
|
|
5196
|
+
* interval floor, and disables its own submit from these same functions: a second
|
|
5197
|
+
* client-side implementation would drift and either show run times the schedule
|
|
5198
|
+
* does not keep or accept a cadence the server then rejects.
|
|
5199
|
+
*/
|
|
5200
|
+
function cadenceToCron(cadence) {
|
|
5201
|
+
if (cadence.frequency === "cron") return cadence.expression;
|
|
5202
|
+
const { frequency, hour, minute } = cadence;
|
|
5203
|
+
if (frequency === "hourly") return `${minute} * * * *`;
|
|
5204
|
+
if (frequency === "daily") return `${minute} ${hour} * * *`;
|
|
5205
|
+
if (frequency === "weekdays") return `${minute} ${hour} * * 1-5`;
|
|
5206
|
+
return `${minute} ${hour} * * ${[...cadence.daysOfWeek?.length ? cadence.daysOfWeek : [WEEKLY_DEFAULT_DAY]].sort((a, b) => a - b).join(",")}`;
|
|
5207
|
+
}
|
|
5208
|
+
/**
|
|
5209
|
+
* Everything `cronCadenceSchema` will accept: exactly five fields, within the length
|
|
5210
|
+
* the schema stores, and actually matching at some point. croner accepts syntactically
|
|
5211
|
+
* valid patterns that can never match (`0 0 30 2 *`), and those would arm a schedule
|
|
5212
|
+
* that never fires. Validated with croner rather than a regex, because a regex would
|
|
5213
|
+
* accept patterns croner then rejects at fire time.
|
|
5214
|
+
*
|
|
5215
|
+
* A five-field expression that matches at all matches forever, which is what lets every
|
|
5216
|
+
* caller keep reading "no next occurrence" as "this cadence is unreadable".
|
|
5217
|
+
*/
|
|
5218
|
+
function isValidCronExpression(expression, timezone) {
|
|
5219
|
+
const trimmed = expression.trim();
|
|
5220
|
+
if (trimmed.length > 256) return false;
|
|
5221
|
+
if (trimmed.split(/\s+/).length !== CRON_FIELD_COUNT) return false;
|
|
5222
|
+
try {
|
|
5223
|
+
return new Cron(trimmed, {
|
|
5224
|
+
timezone,
|
|
5225
|
+
paused: true
|
|
5226
|
+
}).nextRun() != null;
|
|
5227
|
+
} catch {
|
|
5228
|
+
return false;
|
|
5229
|
+
}
|
|
5230
|
+
}
|
|
5231
|
+
/**
|
|
5232
|
+
* The next occurrences the engine would fire. Server-side jitter (up to two
|
|
5233
|
+
* minutes) is deliberately not modelled: it is keyed off a schedule id that does
|
|
5234
|
+
* not exist yet at create time, and showing 9:01 for a 9:00 schedule reads as a bug.
|
|
5235
|
+
*/
|
|
5236
|
+
function nextRunInstants(cadence, timezone, count) {
|
|
5237
|
+
try {
|
|
5238
|
+
const runs = new Cron(cadenceToCron(cadence), {
|
|
5239
|
+
timezone,
|
|
5240
|
+
paused: true
|
|
5241
|
+
}).nextRuns(count);
|
|
5242
|
+
return runs.filter((run, index) => index === 0 || run.getTime() !== runs[index - 1].getTime());
|
|
5243
|
+
} catch {
|
|
5244
|
+
return [];
|
|
5245
|
+
}
|
|
5246
|
+
}
|
|
5247
|
+
const MINUTE_MS = 6e4;
|
|
5248
|
+
const DAY_MS = 1440 * MINUTE_MS;
|
|
5249
|
+
/** A year and a bit, so a zone with a single yearly transition always shows one. */
|
|
5250
|
+
const TRANSITION_SEARCH_DAYS = 400;
|
|
5251
|
+
const offsetFormatters = /* @__PURE__ */ new Map();
|
|
5252
|
+
/** Minutes east of UTC in `zone` at `instant`, read back from the wall clock the
|
|
5253
|
+
* zone renders. The only way to observe a zone's offset without a tz database. */
|
|
5254
|
+
function zoneOffsetMinutes(zone, instant) {
|
|
5255
|
+
let formatter = offsetFormatters.get(zone);
|
|
5256
|
+
if (formatter == null) {
|
|
5257
|
+
formatter = new Intl.DateTimeFormat("en-US", {
|
|
5258
|
+
timeZone: zone,
|
|
5259
|
+
hourCycle: "h23",
|
|
5260
|
+
year: "numeric",
|
|
5261
|
+
month: "2-digit",
|
|
5262
|
+
day: "2-digit",
|
|
5263
|
+
hour: "2-digit",
|
|
5264
|
+
minute: "2-digit",
|
|
5265
|
+
second: "2-digit"
|
|
5266
|
+
});
|
|
5267
|
+
offsetFormatters.set(zone, formatter);
|
|
5268
|
+
}
|
|
5269
|
+
const parts = {};
|
|
5270
|
+
for (const part of formatter.formatToParts(instant)) parts[part.type] = part.value;
|
|
5271
|
+
const wallClock = Date.UTC(Number(parts.year), Number(parts.month) - 1, Number(parts.day), Number(parts.hour), Number(parts.minute), Number(parts.second));
|
|
5272
|
+
return Math.round((wallClock - instant.getTime()) / MINUTE_MS);
|
|
5273
|
+
}
|
|
5274
|
+
/** Zone transitions are asked for once per fire, and the scan below costs ~10ms.
|
|
5275
|
+
* Keyed by day because that is how far the answer stays put as the window slides,
|
|
5276
|
+
* and cleared wholesale at the cap so a long-lived worker cannot accumulate an
|
|
5277
|
+
* entry per zone per day forever. */
|
|
5278
|
+
const transitionCache = /* @__PURE__ */ new Map();
|
|
5279
|
+
const TRANSITION_CACHE_MAX = 512;
|
|
5280
|
+
/**
|
|
5281
|
+
* Every instant `zone` changes its UTC offset within the search window; empty for a
|
|
5282
|
+
* fixed-offset zone. Both directions matter and only one of them shortens anything,
|
|
5283
|
+
* so taking just the next one would usually find the harmless fall-back and miss the
|
|
5284
|
+
* spring-forward six months behind it. Bracketed a day at a time, bisected to the
|
|
5285
|
+
* minute.
|
|
5286
|
+
*/
|
|
5287
|
+
function offsetChanges(zone, from) {
|
|
5288
|
+
const day = Math.floor(from.getTime() / DAY_MS);
|
|
5289
|
+
const cacheKey = `${zone}:${day}`;
|
|
5290
|
+
const cached = transitionCache.get(cacheKey);
|
|
5291
|
+
if (cached != null) return cached;
|
|
5292
|
+
const changes = [];
|
|
5293
|
+
const start = /* @__PURE__ */ new Date((day - 1) * DAY_MS);
|
|
5294
|
+
let low = start.getTime();
|
|
5295
|
+
let baseOffset = zoneOffsetMinutes(zone, start);
|
|
5296
|
+
const end = low + TRANSITION_SEARCH_DAYS * DAY_MS;
|
|
5297
|
+
for (let probe = low + DAY_MS; probe <= end; probe += DAY_MS) {
|
|
5298
|
+
const offset = zoneOffsetMinutes(zone, new Date(probe));
|
|
5299
|
+
if (offset !== baseOffset) {
|
|
5300
|
+
let high = probe;
|
|
5301
|
+
let bracket = low;
|
|
5302
|
+
while (high - bracket > MINUTE_MS) {
|
|
5303
|
+
const mid = bracket + Math.floor((high - bracket) / 2);
|
|
5304
|
+
if (zoneOffsetMinutes(zone, new Date(mid)) === baseOffset) bracket = mid;
|
|
5305
|
+
else high = mid;
|
|
5306
|
+
}
|
|
5307
|
+
changes.push(new Date(high));
|
|
5308
|
+
baseOffset = offset;
|
|
5309
|
+
}
|
|
5310
|
+
low = probe;
|
|
5311
|
+
}
|
|
5312
|
+
if (transitionCache.size >= TRANSITION_CACHE_MAX) transitionCache.clear();
|
|
5313
|
+
transitionCache.set(cacheKey, changes);
|
|
5314
|
+
return changes;
|
|
5315
|
+
}
|
|
5316
|
+
function runsAfter(expression, from, zone, occurrences = CRON_PROBE_OCCURRENCES) {
|
|
5317
|
+
return new Cron(expression, {
|
|
5318
|
+
timezone: zone,
|
|
5319
|
+
paused: true
|
|
5320
|
+
}).nextRuns(occurrences, from);
|
|
5321
|
+
}
|
|
5322
|
+
/** Tightest gap, in minutes, across `runs`; null when there is no pair to measure. */
|
|
5323
|
+
function minGapMinutes(runs) {
|
|
5324
|
+
if (runs.length < 2) return null;
|
|
5325
|
+
let minGapMs = Number.MAX_SAFE_INTEGER;
|
|
5326
|
+
for (let i = 1; i < runs.length; i++) {
|
|
5327
|
+
const gapMs = runs[i].getTime() - runs[i - 1].getTime();
|
|
5328
|
+
if (gapMs <= 0) continue;
|
|
5329
|
+
minGapMs = Math.min(minGapMs, gapMs);
|
|
5330
|
+
}
|
|
5331
|
+
if (minGapMs === Number.MAX_SAFE_INTEGER) return null;
|
|
5332
|
+
return Math.floor(minGapMs / MINUTE_MS);
|
|
5333
|
+
}
|
|
5334
|
+
function probeMinGapMinutes(expression, zone, from, occurrences = CRON_PROBE_OCCURRENCES) {
|
|
5335
|
+
return minGapMinutes(runsAfter(expression, from, zone, occurrences));
|
|
5336
|
+
}
|
|
5337
|
+
/**
|
|
5338
|
+
* Smallest gap in minutes between occurrences. Returns 0 for an unparseable or
|
|
5339
|
+
* never-matching expression so every floor rejects it, failing closed rather than
|
|
5340
|
+
* admitting an expression the engine cannot fire.
|
|
5341
|
+
*
|
|
5342
|
+
* Measured twice, and the smaller wins:
|
|
5343
|
+
*
|
|
5344
|
+
* 1. Nominal, probed in UTC, then discounted by the same worst-case DST allowance
|
|
5345
|
+
* the structured branches assume. This keeps `0 9 * * *` reporting exactly what
|
|
5346
|
+
* the Daily preset reports, so the same schedule cannot be admitted in one form
|
|
5347
|
+
* and rejected in the other.
|
|
5348
|
+
* 2. Real elapsed time in the schedule's own zone, across each of that zone's
|
|
5349
|
+
* transitions. Spring-forward compresses a gap that straddles one
|
|
5350
|
+
* (`0 0,12 * * *` in America/New_York is 11 hours that day, not 12), and step 1
|
|
5351
|
+
* only discounts gaps of a day or more, so a subdaily gap needs measuring rather
|
|
5352
|
+
* than estimating. Anchoring at the transition is what makes a bounded probe see
|
|
5353
|
+
* it at all: from today it is usually months outside any reasonable window.
|
|
5354
|
+
*/
|
|
5355
|
+
function cronIntervalMinutes(expression, timezone) {
|
|
5356
|
+
try {
|
|
5357
|
+
const now = /* @__PURE__ */ new Date();
|
|
5358
|
+
const nominal = probeMinGapMinutes(expression, "UTC", now);
|
|
5359
|
+
if (nominal == null) return 0;
|
|
5360
|
+
const estimate = nominal < 1440 ? nominal : Math.max(0, nominal - DST_COMPRESSION_MINUTES);
|
|
5361
|
+
if (timezone == null || estimate === 0) return estimate;
|
|
5362
|
+
const anchorBackMs = 2 * Math.max(nominal, 1) * MINUTE_MS;
|
|
5363
|
+
let smallest = estimate;
|
|
5364
|
+
for (const transition of offsetChanges(timezone, now)) {
|
|
5365
|
+
const measured = probeMinGapMinutes(expression, timezone, new Date(Math.max(now.getTime(), transition.getTime() - anchorBackMs)), TRANSITION_PROBE_OCCURRENCES);
|
|
5366
|
+
if (measured != null) smallest = Math.min(smallest, measured);
|
|
5367
|
+
}
|
|
5368
|
+
return smallest;
|
|
5369
|
+
} catch {
|
|
5370
|
+
return 0;
|
|
5371
|
+
}
|
|
5372
|
+
}
|
|
5373
|
+
/**
|
|
5374
|
+
* Minimum minutes between occurrences, for the admin interval floor. `timezone` is
|
|
5375
|
+
* the schedule's own; passing it lets the cron branch measure a DST-compressed gap
|
|
5376
|
+
* instead of estimating one. The structured branches are zone-independent: their
|
|
5377
|
+
* formulas already carry the worst-case allowance.
|
|
5378
|
+
*/
|
|
5379
|
+
function cadenceIntervalMinutes(cadence, timezone) {
|
|
5380
|
+
if (isCronCadence(cadence)) return cronIntervalMinutes(cadence.expression, timezone);
|
|
5381
|
+
if (cadence.frequency === "hourly") return 60;
|
|
5382
|
+
if (cadence.frequency === "daily" || cadence.frequency === "weekdays") return 1440 - DST_COMPRESSION_MINUTES;
|
|
5383
|
+
const days = cadence.daysOfWeek?.length ? Array.from(new Set(cadence.daysOfWeek)) : [WEEKLY_DEFAULT_DAY];
|
|
5384
|
+
if (days.length <= 1) return 10080 - DST_COMPRESSION_MINUTES;
|
|
5385
|
+
const sorted = [...days].sort((a, b) => a - b);
|
|
5386
|
+
let minGapDays = 7;
|
|
5387
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
5388
|
+
const gap = i + 1 < sorted.length ? sorted[i + 1] - sorted[i] : 7 - sorted[i] + sorted[0];
|
|
5389
|
+
minGapDays = Math.min(minGapDays, gap);
|
|
5390
|
+
}
|
|
5391
|
+
return minGapDays * 24 * 60 - DST_COMPRESSION_MINUTES;
|
|
5392
|
+
}
|
|
5393
|
+
//#endregion
|
|
4866
5394
|
//#region src/types/skills.ts
|
|
4867
5395
|
/**
|
|
4868
5396
|
* Shared skill validation constants — the single source of truth for name,
|
|
@@ -4895,6 +5423,171 @@ let DATE_RANGE = /* @__PURE__ */ function(DATE_RANGE) {
|
|
|
4895
5423
|
return DATE_RANGE;
|
|
4896
5424
|
}({});
|
|
4897
5425
|
//#endregion
|
|
5426
|
+
//#region src/types/insights.ts
|
|
5427
|
+
const INSIGHTS_MAX_RANGE_DAYS = 30;
|
|
5428
|
+
const INSIGHTS_SEARCH_MIN_LENGTH = 3;
|
|
5429
|
+
const INSIGHTS_SEARCH_MAX_LENGTH = 200;
|
|
5430
|
+
//#endregion
|
|
5431
|
+
//#region src/types/queuedTurns.ts
|
|
5432
|
+
const agentQueuedTurnStatuses = [
|
|
5433
|
+
"queued",
|
|
5434
|
+
"claimed",
|
|
5435
|
+
"admitted",
|
|
5436
|
+
"cancelled",
|
|
5437
|
+
"dead"
|
|
5438
|
+
];
|
|
5439
|
+
const agentQueuedTurnDurability = ["process_local", "durable"];
|
|
5440
|
+
const agentQueuedTurnFileRefSchema = z.object({
|
|
5441
|
+
file_id: z.string().trim().min(1),
|
|
5442
|
+
type: z.string().optional(),
|
|
5443
|
+
filepath: z.string().optional(),
|
|
5444
|
+
filename: z.string().optional(),
|
|
5445
|
+
height: z.number().optional(),
|
|
5446
|
+
width: z.number().optional(),
|
|
5447
|
+
bytes: z.number().nonnegative().optional()
|
|
5448
|
+
});
|
|
5449
|
+
const enqueueAgentQueuedTurnSchema = z.object({
|
|
5450
|
+
conversationId: z.string().trim().min(1),
|
|
5451
|
+
parentMessageId: z.string().trim().min(1),
|
|
5452
|
+
clientRequestId: z.string().trim().min(1).max(128),
|
|
5453
|
+
text: z.string(),
|
|
5454
|
+
files: z.array(agentQueuedTurnFileRefSchema).optional(),
|
|
5455
|
+
quotes: z.array(z.string()).optional(),
|
|
5456
|
+
manualSkills: z.array(z.string().trim().min(1)).optional(),
|
|
5457
|
+
priority: z.boolean().optional(),
|
|
5458
|
+
expectedPredecessorCreatedAt: z.number().int().nonnegative().optional()
|
|
5459
|
+
});
|
|
5460
|
+
const listAgentQueuedTurnsSchema = z.object({
|
|
5461
|
+
conversationId: z.string().trim().min(1),
|
|
5462
|
+
clientRequestIds: z.array(z.string().trim().min(1).max(128)).max(100).transform((ids) => Array.from(new Set(ids))).optional()
|
|
5463
|
+
});
|
|
5464
|
+
const cancelAgentQueuedTurnSchema = z.object({ queuedTurnId: z.string().trim().min(1) });
|
|
5465
|
+
const agentQueuedTurnReceiptSchema = enqueueAgentQueuedTurnSchema.extend({
|
|
5466
|
+
queuedTurnId: z.string().trim().min(1),
|
|
5467
|
+
status: z.enum(agentQueuedTurnStatuses),
|
|
5468
|
+
/** Effective generation boundary consumed by an admitted turn. This can
|
|
5469
|
+
* advance beyond the originally captured root as queued turns chain. */
|
|
5470
|
+
effectivePredecessorCreatedAt: z.number().int().nonnegative().optional(),
|
|
5471
|
+
/** Explicitly proves that this admission consumed no predecessor boundary. */
|
|
5472
|
+
rootPredecessor: z.literal(true).optional(),
|
|
5473
|
+
position: z.number().int().nonnegative().optional(),
|
|
5474
|
+
/** Immutable queue sequence retained as `revision` for wire compatibility. */
|
|
5475
|
+
revision: z.number().int().nonnegative(),
|
|
5476
|
+
failure: z.object({
|
|
5477
|
+
code: z.string().trim().min(1).max(128),
|
|
5478
|
+
message: z.string().max(2048).optional()
|
|
5479
|
+
}).optional(),
|
|
5480
|
+
createdAt: z.string(),
|
|
5481
|
+
updatedAt: z.string()
|
|
5482
|
+
});
|
|
5483
|
+
const agentQueuedTurnCapabilitySchema = z.discriminatedUnion("supported", [z.object({ supported: z.literal(false) }), z.object({
|
|
5484
|
+
supported: z.literal(true),
|
|
5485
|
+
durability: z.enum(agentQueuedTurnDurability)
|
|
5486
|
+
})]);
|
|
5487
|
+
const enqueueAgentQueuedTurnResponseSchema = z.object({
|
|
5488
|
+
receipt: agentQueuedTurnReceiptSchema,
|
|
5489
|
+
capability: agentQueuedTurnCapabilitySchema
|
|
5490
|
+
});
|
|
5491
|
+
const listAgentQueuedTurnsResponseSchema = z.object({
|
|
5492
|
+
queuedTurns: z.array(agentQueuedTurnReceiptSchema),
|
|
5493
|
+
capability: agentQueuedTurnCapabilitySchema,
|
|
5494
|
+
revision: z.number().int().nonnegative()
|
|
5495
|
+
});
|
|
5496
|
+
const cancelAgentQueuedTurnResponseSchema = z.object({ receipt: agentQueuedTurnReceiptSchema });
|
|
5497
|
+
//#endregion
|
|
5498
|
+
//#region src/providers.ts
|
|
5499
|
+
/** Canonical provider identity used for branding across client and server. */
|
|
5500
|
+
let ProviderId = /* @__PURE__ */ function(ProviderId) {
|
|
5501
|
+
ProviderId["openai"] = "openai";
|
|
5502
|
+
ProviderId["anthropic"] = "anthropic";
|
|
5503
|
+
ProviderId["google"] = "google";
|
|
5504
|
+
ProviderId["azure"] = "azure";
|
|
5505
|
+
ProviderId["bedrock"] = "bedrock";
|
|
5506
|
+
ProviderId["xai"] = "xai";
|
|
5507
|
+
ProviderId["moonshot"] = "moonshot";
|
|
5508
|
+
ProviderId["anyscale"] = "anyscale";
|
|
5509
|
+
ProviderId["apipie"] = "apipie";
|
|
5510
|
+
ProviderId["cohere"] = "cohere";
|
|
5511
|
+
ProviderId["deepseek"] = "deepseek";
|
|
5512
|
+
ProviderId["fireworks"] = "fireworks";
|
|
5513
|
+
ProviderId["groq"] = "groq";
|
|
5514
|
+
ProviderId["helicone"] = "helicone";
|
|
5515
|
+
ProviderId["huggingface"] = "huggingface";
|
|
5516
|
+
ProviderId["mistral"] = "mistral";
|
|
5517
|
+
ProviderId["mlx"] = "mlx";
|
|
5518
|
+
ProviderId["ollama"] = "ollama";
|
|
5519
|
+
ProviderId["openrouter"] = "openrouter";
|
|
5520
|
+
ProviderId["perplexity"] = "perplexity";
|
|
5521
|
+
ProviderId["qwen"] = "qwen";
|
|
5522
|
+
ProviderId["shuttleai"] = "shuttleai";
|
|
5523
|
+
ProviderId["together"] = "together";
|
|
5524
|
+
ProviderId["unify"] = "unify";
|
|
5525
|
+
ProviderId["vercel"] = "vercel";
|
|
5526
|
+
return ProviderId;
|
|
5527
|
+
}({});
|
|
5528
|
+
const endpointToProvider = {
|
|
5529
|
+
["openAI"]: "openai",
|
|
5530
|
+
["azureOpenAI"]: "azure",
|
|
5531
|
+
["anthropic"]: "anthropic",
|
|
5532
|
+
["google"]: "google",
|
|
5533
|
+
["bedrock"]: "bedrock"
|
|
5534
|
+
};
|
|
5535
|
+
const knownEndpointToProvider = {
|
|
5536
|
+
["anyscale"]: "anyscale",
|
|
5537
|
+
["apipie"]: "apipie",
|
|
5538
|
+
["cohere"]: "cohere",
|
|
5539
|
+
["fireworks"]: "fireworks",
|
|
5540
|
+
["deepseek"]: "deepseek",
|
|
5541
|
+
["moonshot"]: "moonshot",
|
|
5542
|
+
["groq"]: "groq",
|
|
5543
|
+
["helicone"]: "helicone",
|
|
5544
|
+
["huggingface"]: "huggingface",
|
|
5545
|
+
["mistral"]: "mistral",
|
|
5546
|
+
["mlx"]: "mlx",
|
|
5547
|
+
["ollama"]: "ollama",
|
|
5548
|
+
["openrouter"]: "openrouter",
|
|
5549
|
+
["perplexity"]: "perplexity",
|
|
5550
|
+
["shuttleai"]: "shuttleai",
|
|
5551
|
+
["together.ai"]: "together",
|
|
5552
|
+
["unify"]: "unify",
|
|
5553
|
+
["vercel"]: "vercel",
|
|
5554
|
+
["xai"]: "xai"
|
|
5555
|
+
};
|
|
5556
|
+
const providerAliases = {
|
|
5557
|
+
chatgpt: "openai",
|
|
5558
|
+
gpt: "openai",
|
|
5559
|
+
azureopenai: "azure",
|
|
5560
|
+
claude: "anthropic",
|
|
5561
|
+
gemini: "google",
|
|
5562
|
+
gemma: "google",
|
|
5563
|
+
vertex: "google",
|
|
5564
|
+
vertexai: "google",
|
|
5565
|
+
palm: "google",
|
|
5566
|
+
awsbedrock: "bedrock",
|
|
5567
|
+
grok: "xai",
|
|
5568
|
+
kimi: "moonshot",
|
|
5569
|
+
moonshotai: "moonshot",
|
|
5570
|
+
mistralai: "mistral",
|
|
5571
|
+
togetherai: "together"
|
|
5572
|
+
};
|
|
5573
|
+
const modelCatalogAliases = { ["vertexai"]: "google" };
|
|
5574
|
+
const normalize = (input) => input.toLowerCase().replace(/[\s._-]/g, "");
|
|
5575
|
+
const providerByNormalizedId = Object.values(ProviderId).reduce((acc, id) => {
|
|
5576
|
+
acc[normalize(id)] = id;
|
|
5577
|
+
return acc;
|
|
5578
|
+
}, {});
|
|
5579
|
+
/** Resolves free-form provider text to a canonical id, ignoring case and separators. */
|
|
5580
|
+
function resolveProviderId(input) {
|
|
5581
|
+
if (!input) return null;
|
|
5582
|
+
const key = normalize(input);
|
|
5583
|
+
return providerByNormalizedId[key] ?? providerAliases[key] ?? null;
|
|
5584
|
+
}
|
|
5585
|
+
/** Resolves a runtime provider to its model catalog, using a native alias only when needed. */
|
|
5586
|
+
function resolveModelCatalogKey(provider, catalogs) {
|
|
5587
|
+
const key = provider ?? "";
|
|
5588
|
+
return catalogs?.[key] != null ? key : modelCatalogAliases[key] ?? key;
|
|
5589
|
+
}
|
|
5590
|
+
//#endregion
|
|
4898
5591
|
//#region src/actions.ts
|
|
4899
5592
|
function sha1(input) {
|
|
4900
5593
|
return crypto.createHash("sha1").update(input).digest("hex");
|
|
@@ -5382,7 +6075,9 @@ function createPayload(submission) {
|
|
|
5382
6075
|
const { conversationId } = tConvoUpdateSchema.parse(conversation);
|
|
5383
6076
|
const { endpoint: _e, endpointType } = endpointOption;
|
|
5384
6077
|
const endpoint = _e;
|
|
5385
|
-
|
|
6078
|
+
/** Custom endpoint names are user-defined and may contain `/`, which would
|
|
6079
|
+
* otherwise split into extra path segments and miss the `/:endpoint` route. */
|
|
6080
|
+
let server = `${EndpointURLs["agents"]}/${encodeURIComponent(endpoint)}`;
|
|
5386
6081
|
if (isAssistantsEndpoint(endpoint)) server = EndpointURLs[endpointType ?? endpoint] + (isEdited ? "/modify" : "");
|
|
5387
6082
|
const payload = {
|
|
5388
6083
|
...userMessage,
|
|
@@ -5458,28 +6153,6 @@ const baseDefinitions = {
|
|
|
5458
6153
|
optionType: "conversation",
|
|
5459
6154
|
minTags: 0,
|
|
5460
6155
|
maxTags: 4
|
|
5461
|
-
},
|
|
5462
|
-
imageDetail: {
|
|
5463
|
-
key: "imageDetail",
|
|
5464
|
-
label: "com_endpoint_plug_image_detail",
|
|
5465
|
-
labelCode: true,
|
|
5466
|
-
description: "com_endpoint_openai_detail",
|
|
5467
|
-
descriptionCode: true,
|
|
5468
|
-
type: "enum",
|
|
5469
|
-
default: "auto",
|
|
5470
|
-
component: "slider",
|
|
5471
|
-
options: [
|
|
5472
|
-
"low",
|
|
5473
|
-
"auto",
|
|
5474
|
-
"high"
|
|
5475
|
-
],
|
|
5476
|
-
enumMappings: {
|
|
5477
|
-
["low"]: "com_ui_low",
|
|
5478
|
-
["auto"]: "com_ui_auto",
|
|
5479
|
-
["high"]: "com_ui_high"
|
|
5480
|
-
},
|
|
5481
|
-
optionType: "conversation",
|
|
5482
|
-
columnSpan: 2
|
|
5483
6156
|
}
|
|
5484
6157
|
};
|
|
5485
6158
|
const createDefinition = (base, overrides) => {
|
|
@@ -5537,6 +6210,30 @@ const librechat = {
|
|
|
5537
6210
|
placeholderCode: true,
|
|
5538
6211
|
optionType: "model"
|
|
5539
6212
|
},
|
|
6213
|
+
/** Controls how LibreChat encodes image content blocks, not a provider request
|
|
6214
|
+
* parameter — so it belongs to this group and is stripped from model options. */
|
|
6215
|
+
imageDetail: {
|
|
6216
|
+
key: "imageDetail",
|
|
6217
|
+
label: "com_endpoint_plug_image_detail",
|
|
6218
|
+
labelCode: true,
|
|
6219
|
+
description: "com_endpoint_openai_detail",
|
|
6220
|
+
descriptionCode: true,
|
|
6221
|
+
type: "enum",
|
|
6222
|
+
default: "auto",
|
|
6223
|
+
component: "slider",
|
|
6224
|
+
options: [
|
|
6225
|
+
"low",
|
|
6226
|
+
"auto",
|
|
6227
|
+
"high"
|
|
6228
|
+
],
|
|
6229
|
+
enumMappings: {
|
|
6230
|
+
["low"]: "com_ui_low",
|
|
6231
|
+
["auto"]: "com_ui_auto",
|
|
6232
|
+
["high"]: "com_ui_high"
|
|
6233
|
+
},
|
|
6234
|
+
optionType: "conversation",
|
|
6235
|
+
columnSpan: 2
|
|
6236
|
+
},
|
|
5540
6237
|
fileTokenLimit: {
|
|
5541
6238
|
key: "fileTokenLimit",
|
|
5542
6239
|
label: "com_ui_file_token_limit",
|
|
@@ -6115,6 +6812,14 @@ const meta = {
|
|
|
6115
6812
|
})
|
|
6116
6813
|
};
|
|
6117
6814
|
const google = {
|
|
6815
|
+
/** Bounds the hand-rolled editor enforced through InputNumber, and they stay
|
|
6816
|
+
* scoped to this endpoint: the shared definition is rendered by every other
|
|
6817
|
+
* endpoint, whose own context windows may fall outside them. */
|
|
6818
|
+
maxContextTokens: createDefinition(librechat.maxContextTokens, { range: {
|
|
6819
|
+
min: googleSettings.maxContextTokens.min,
|
|
6820
|
+
max: googleSettings.maxContextTokens.max,
|
|
6821
|
+
step: googleSettings.maxContextTokens.step
|
|
6822
|
+
} }),
|
|
6118
6823
|
temperature: createDefinition(baseDefinitions.temperature, {
|
|
6119
6824
|
default: googleSettings.temperature.default,
|
|
6120
6825
|
range: {
|
|
@@ -6254,7 +6959,7 @@ const google = {
|
|
|
6254
6959
|
const googleConfig = [
|
|
6255
6960
|
librechat.modelLabel,
|
|
6256
6961
|
librechat.promptPrefix,
|
|
6257
|
-
|
|
6962
|
+
google.maxContextTokens,
|
|
6258
6963
|
google.maxOutputTokens,
|
|
6259
6964
|
google.temperature,
|
|
6260
6965
|
google.topP,
|
|
@@ -6273,7 +6978,7 @@ const googleCol1 = [
|
|
|
6273
6978
|
librechat.promptPrefix
|
|
6274
6979
|
];
|
|
6275
6980
|
const googleCol2 = [
|
|
6276
|
-
|
|
6981
|
+
google.maxContextTokens,
|
|
6277
6982
|
google.maxOutputTokens,
|
|
6278
6983
|
google.temperature,
|
|
6279
6984
|
google.topP,
|
|
@@ -6297,7 +7002,7 @@ const openAI = [
|
|
|
6297
7002
|
openAIParams.presence_penalty,
|
|
6298
7003
|
baseDefinitions.stop,
|
|
6299
7004
|
librechat.resendFiles,
|
|
6300
|
-
|
|
7005
|
+
librechat.imageDetail,
|
|
6301
7006
|
openAIParams.web_search,
|
|
6302
7007
|
openAIParams.reasoning_effort,
|
|
6303
7008
|
openAIParams.useResponsesApi,
|
|
@@ -6327,7 +7032,7 @@ const openAICol2 = [
|
|
|
6327
7032
|
openAIParams.presence_penalty,
|
|
6328
7033
|
baseDefinitions.stop,
|
|
6329
7034
|
librechat.resendFiles,
|
|
6330
|
-
|
|
7035
|
+
librechat.imageDetail,
|
|
6331
7036
|
openAIParams.reasoning_effort,
|
|
6332
7037
|
openAIParams.reasoning_summary,
|
|
6333
7038
|
openAIParams.reasoning_mode,
|
|
@@ -6634,13 +7339,71 @@ const agentParamSettings = Object.entries(presetSettings).reduce((acc, [key, val
|
|
|
6634
7339
|
* Resolves model-aware defaults for a settings configuration before rendering.
|
|
6635
7340
|
* Google's `maxOutputTokens` default depends on the selected Gemini model so that
|
|
6636
7341
|
* current models (2.5 and 3+) surface their 64K output limit instead of the legacy 8K value.
|
|
7342
|
+
* Anthropic prompt-cache controls are only surfaced for models that support them.
|
|
6637
7343
|
*/
|
|
6638
7344
|
function applyModelAwareDefaults(settings, endpoint, model) {
|
|
6639
|
-
if (
|
|
6640
|
-
|
|
6641
|
-
|
|
6642
|
-
|
|
6643
|
-
|
|
7345
|
+
if (!model) return settings;
|
|
7346
|
+
const modelAwareSettings = endpoint === "google" ? settings.map((setting) => {
|
|
7347
|
+
if (setting.key === "maxOutputTokens") return {
|
|
7348
|
+
...setting,
|
|
7349
|
+
default: googleSettings.maxOutputTokens.reset(model)
|
|
7350
|
+
};
|
|
7351
|
+
/** The shared thinking budget range is model-agnostic, so it caps Pro below
|
|
7352
|
+
* its real ceiling and accepts Flash values the provider rejects. The
|
|
7353
|
+
* maximum and the positive floor move together. `range.min` stays -1 so
|
|
7354
|
+
* the "decide automatically" sentinel remains typeable. */
|
|
7355
|
+
if (setting.key === "thinkingBudget" && setting.range != null) {
|
|
7356
|
+
const bounds = getGoogleThinkingBudgetBounds(model);
|
|
7357
|
+
if (bounds != null) return {
|
|
7358
|
+
...setting,
|
|
7359
|
+
range: {
|
|
7360
|
+
...setting.range,
|
|
7361
|
+
max: bounds.max,
|
|
7362
|
+
positiveMin: bounds.min,
|
|
7363
|
+
modelSpecific: true
|
|
7364
|
+
}
|
|
7365
|
+
};
|
|
7366
|
+
}
|
|
7367
|
+
return setting;
|
|
7368
|
+
}) : settings;
|
|
7369
|
+
if (endpoint !== "anthropic" || supportsPromptCache(model)) return modelAwareSettings;
|
|
7370
|
+
return modelAwareSettings.filter((setting) => setting.key !== "promptCache" && setting.key !== "promptCacheTtl");
|
|
7371
|
+
}
|
|
7372
|
+
//#endregion
|
|
7373
|
+
//#region src/agentToolOptions.ts
|
|
7374
|
+
const actionDomainSeparatorRegex = /* @__PURE__ */ new RegExp("---", "g");
|
|
7375
|
+
/**
|
|
7376
|
+
* Collapses the encoded-domain suffix of an action tool name to the shape used
|
|
7377
|
+
* by runtime tool definitions. The operation id is deliberately preserved.
|
|
7378
|
+
*/
|
|
7379
|
+
function normalizeActionToolName(toolName) {
|
|
7380
|
+
if (!isActionTool(toolName)) return toolName;
|
|
7381
|
+
const prefixEnd = toolName.lastIndexOf(actionDelimiter) + actionDelimiter.length;
|
|
7382
|
+
const encodedDomain = toolName.slice(prefixEnd);
|
|
7383
|
+
return toolName.slice(0, prefixEnd) + encodedDomain.replace(actionDomainSeparatorRegex, "_");
|
|
7384
|
+
}
|
|
7385
|
+
/**
|
|
7386
|
+
* Removes Code Interpreter as an allowed caller without mutating the input.
|
|
7387
|
+
* Tool entries and unrelated options are preserved; an empty entry is removed.
|
|
7388
|
+
*/
|
|
7389
|
+
function removeCodeExecutionCaller(toolOptions) {
|
|
7390
|
+
if (toolOptions == null) return toolOptions;
|
|
7391
|
+
const normalized = {};
|
|
7392
|
+
for (const [toolName, options] of Object.entries(toolOptions)) {
|
|
7393
|
+
const callers = options.allowed_callers;
|
|
7394
|
+
if (callers?.includes("code_execution") !== true) {
|
|
7395
|
+
normalized[toolName] = options;
|
|
7396
|
+
continue;
|
|
7397
|
+
}
|
|
7398
|
+
const allowedCallers = callers.filter((caller) => caller !== "code_execution");
|
|
7399
|
+
const { allowed_callers: _removed, ...remainingOptions } = options;
|
|
7400
|
+
const nextOptions = allowedCallers.length > 0 ? {
|
|
7401
|
+
...remainingOptions,
|
|
7402
|
+
allowed_callers: allowedCallers
|
|
7403
|
+
} : remainingOptions;
|
|
7404
|
+
if (Object.keys(nextOptions).length > 0) normalized[toolName] = nextOptions;
|
|
7405
|
+
}
|
|
7406
|
+
return normalized;
|
|
6644
7407
|
}
|
|
6645
7408
|
//#endregion
|
|
6646
7409
|
//#region src/codeEnvRef.ts
|
|
@@ -6667,7 +7430,32 @@ const CODE_ENV_KINDS = [
|
|
|
6667
7430
|
"agent",
|
|
6668
7431
|
"user"
|
|
6669
7432
|
];
|
|
7433
|
+
function getCodeEnvRefForProfile(refs, routeKey) {
|
|
7434
|
+
const profileRef = refs?.codeEnvRefs?.[routeKey];
|
|
7435
|
+
if (profileRef) return profileRef;
|
|
7436
|
+
const legacyRef = refs?.codeEnvRef;
|
|
7437
|
+
if (legacyRef && (legacyRef.executionRouteKey ?? legacyRef.executionProfile ?? "default") === routeKey) return legacyRef;
|
|
7438
|
+
}
|
|
7439
|
+
/** Adds one profile pointer without discarding the other profile's storage object. */
|
|
7440
|
+
function mergeCodeEnvRef(refs, ref) {
|
|
7441
|
+
const codeEnvRefs = { ...refs?.codeEnvRefs };
|
|
7442
|
+
const legacyRef = refs?.codeEnvRef;
|
|
7443
|
+
if (legacyRef) codeEnvRefs[legacyRef.executionRouteKey ?? legacyRef.executionProfile ?? "default"] ??= legacyRef;
|
|
7444
|
+
const routeKey = ref.executionRouteKey ?? ref.executionProfile ?? "default";
|
|
7445
|
+
codeEnvRefs[routeKey] = ref;
|
|
7446
|
+
return {
|
|
7447
|
+
codeEnvRef: codeEnvRefs.default ?? codeEnvRefs.stateful ?? ref,
|
|
7448
|
+
codeEnvRefs
|
|
7449
|
+
};
|
|
7450
|
+
}
|
|
7451
|
+
/** Enumerates every deployment-local pointer, including legacy single-pointer records. */
|
|
7452
|
+
function getCodeEnvRefs(refs) {
|
|
7453
|
+
const merged = { ...refs?.codeEnvRefs };
|
|
7454
|
+
const legacyRef = refs?.codeEnvRef;
|
|
7455
|
+
if (legacyRef) merged[legacyRef.executionRouteKey ?? legacyRef.executionProfile ?? "default"] ??= legacyRef;
|
|
7456
|
+
return Object.entries(merged).flatMap(([routeKey, ref]) => ref ? [[routeKey, ref]] : []);
|
|
7457
|
+
}
|
|
6670
7458
|
//#endregion
|
|
6671
|
-
export { AUTH_USER_DOC_BY_ID_PREFIX, AccessRoleIds, ActionRequest, ActivityLabelEvents, AgentCapabilities, AnnotationTypes, AnthropicEffort, ApprovalEvents, ArtifactModes, AssistantStreamEvents, AuthKeys, AuthType, AuthTypeEnum, AuthorizationTypeEnum, BASE_ONLY_CONFIG_SECTIONS, BASE_PRINCIPAL_CONFIG_SECTIONS, BEDROCK_FINE_GRAINED_TOOL_STREAMING_BETA, BEDROCK_OUTPUT_128K_BETA, BedrockProviders, BedrockReasoningConfig, CODE_ENV_KINDS, CacheKeys, Capabilities, CohereConstants, ComponentTypes, Constants, ContentTypes, DATE_RANGE, DEFAULT_MEMORY_MAX_INPUT_TOKENS, DynamicQueryKeys, EImageOutputType, EModelEndpoint, EToolResources, EndpointURLs, ErrorTypes, FEEDBACK_RATINGS, FEEDBACK_REASON_KEYS, FEEDBACK_TAGS, FetchTokenConfig, FileContext, FilePurpose, FileSources, ForkOptions, FunctionSignature, INTERFACE_PERMISSION_FIELDS, ImageDetail, ImageDetailCost, ImageVisionTool, InfiniteCollections, InvocationMode, KnownEndpoints, LocalStorageKeys, MAX_SUBAGENTS, MAX_SUBAGENT_DEPTH, MAX_SUBAGENT_GRAPH_NODES, MAX_SUBAGENT_RUN_CONFIGS, MCPOptionsSchema, MCPServerUserInputSchema, MCPServersSchema, MCP_USER_INPUT_FIELDS, MYTHOS_CLASS_FAMILIES, MemoryScope, MessageContentTypes, MutationKeys, OCRStrategy, OptionTypes, PERMISSION_SUB_KEYS, PERMISSION_TYPE_INTERFACE_FIELDS, PermissionBits, PermissionTypes, Permissions, PrincipalModel, PrincipalType, Providers, QueryKeys, REFILL_INTERVAL_UNITS, RateLimitPrefix, ReasoningContext, ReasoningEffort, ReasoningMode, ReasoningParameterFormat, ReasoningResponseKey, ReasoningSummary, RerankerTypes, ResourceType, RetentionMode, RunStatus, SEPARATORS, SKILL_BODY_MAX_LENGTH, SKILL_DESCRIPTION_MAX_LENGTH, SKILL_DESCRIPTION_SHORT_THRESHOLD, SKILL_DISPLAY_TITLE_MAX_LENGTH, SKILL_NAME_MAX_LENGTH, SKILL_NAME_PATTERN, SKILL_SYNC_DEFAULT_DISCOVERY_DEPTH, SKILL_SYNC_MAX_DISCOVERY_DEPTH, SKILL_SYNC_MAX_INTERVAL_MINUTES, SKILL_SYNC_MIN_INTERVAL_MINUTES, SSEOptionsSchema, STTProviders, SafeSearchTypes, ScraperProviders, SearchCategories, SearchProviders, SettingTypes, SettingsTabValues, SettingsViews, StdioOptionsSchema, SteerEvents, StepEvents, StepStatus, StepTypes, StreamableHTTPOptionsSchema, SystemCategories, SystemRoles, TTSProviders, ThinkingDisplay, ThinkingLevel, Time, TokenExchangeMethodEnum, ToolCallTypes, Tools, UsageEvents, Verbosity, ViolationTypes, VisionModes, WebSocketOptionsSchema, accessRoleSchema, accessRoleToPermBits, accordian, actionDelimiter, actionDomainSeparator, agentParamSettings, agentPermissionsSchema, agentsBaseSchema, agentsEndpointSchema, agentsSchema, agentsSettings, alert, alertDialog, allowedAddressesSchema, alternateName, anthropicBaseSchema, anthropicEndpointSchema, anthropicSchema, anthropicSettings, apiBaseUrl, appendAgentIdSuffix, applicationMimeTypes, applyModelAwareDefaults, assistantEndpointSchema, assistantSchema, audioMimeTypes, authTypeSchema, avatar, azureBaseSchema, azureEndpointSchema, azureGroupConfigsSchema, azureGroupSchema, badge, balanceSchema, baseEndpointSchema, bedrockDocumentExtensions, bedrockDocumentFormats, bedrockDocumentMimeTypes, bedrockEndpointSchema, bedrockGuardrailConfigSchema, bedrockInputParser, bedrockInputSchema, bedrockModels, bedrockOutputParser, bookmarkPermissionsSchema, breadcrumb, buildLoginRedirectUrl, buildServerNameAliases, buildTree, button, cacheSubsetProviders, calendar, capsEffortWhenThinkingDisabled, card, carousel, checkOpenAIStorage, checkbox, checkpointerSchema, checkpointerTypeSchema, clampEffortForDisabledThinking, clampOutputConfigEffort, cloudfrontConfigSchema, codeInterpreterMimeTypes, codeInterpreterMimeTypesList, codeTypeMapping, coerceNumber, collapsible, compactAgentsBaseSchema, compactAgentsSchema, compactAssistantSchema, compactGoogleSchema, configSchema, contextPruningSchema, convertStringsToRegex, createPayload, createURL, data_service_exports as dataService, defaultAgentCapabilities, defaultAgentFormValues, defaultAssistantFormValues, defaultAssistantsVersion, defaultEndpoints, defaultModels, defaultOCRMimeTypes, defaultOrderQuery, defaultRetrievalModels, defaultSTTMimeTypes, defaultSocialLogins, defaultTextMimeTypes, dialog, documentParserMimeTypes, documentSupportedProviders, drawer, dropdownMenu, eAnthropicEffortSchema, eImageDetailSchema, eModelEndpointSchema, eReasoningContextSchema, eReasoningEffortSchema, eReasoningModeSchema, eReasoningParameterFormatSchema, eReasoningResponseKeySchema, eReasoningSummarySchema, eThinkingDisplaySchema, eThinkingLevelSchema, eVerbositySchema, effectivePermissionsResponseSchema, encodeEphemeralAgentId, endpointFileConfigSchema, endpointSchema, endpointSettings, envVarRegex, errorsToString, essentialShadcnComponents, excelFileTypes, excelMimeTypes, excludedKeys, extendedModelEndpointSchema, extractDomainFromUrl, extractEnvVariable, extractVariableName, feedbackRatingSchema, feedbackSchema, feedbackTagKeySchema, fileCitationsPermissionsSchema, fileConfig, fileConfigSchema, fileSearchPermissionsSchema, fileSourceSchema, fileStorageSchema, fileStrategiesSchema, findLastSeparatorIndex, fullMimeTypesList, generateDynamicSchema, generateGoogleSchema, generateOpenAISchema, getConfigDefaults, getConfiguredMimeAccept, getDefaultParamsEndpoint, getEnabledEndpoints, getEndpointField, getEndpointFileConfig, getFirstDefinedValue, getModelKey, getNonEmptyValue, getRefillEligibilityDate, getResourcePermissionsResponseSchema, getResponseSender, getSchemaDefaults, getSettingsKeys, getTagByKey, getTagsForRating, getTokenHeader, googleBaseSchema, googleGenConfigSchema, googleSchema, googleSettings, hasPermissions, hostImageIdSuffix, hostImageNamePrefix, hoverCard, imageDetailNumeric, imageDetailValue, imageExtRegex, imageGenTools, imageMimeTypes, imageTypeMapping, inferMimeType, initialModelsConfig, input, inputTokensIncludesCache, interfaceSchema, isActionTool, isAgentsEndpoint, isAnthropicDocumentType, isAnthropicTextDocumentType, isAssistantsEndpoint, isBedrockDocumentType, isDocumentSupportedProvider, isEphemeralAgentId, isImageVisionTool, isMythosClassModel, isOpenAILikeProvider, isParamEndpoint, isPermissiveMimeConfig, isRemoteOidcUrlAllowed, isSensitiveEnvVar, isSystemRoleName, isThinkingDisabled, isUUID, label, langfuseConfigSchema, librechat, loginPage, mapGroupToAzureConfig, mapModelToAzureConfig, marketplacePermissionsSchema, mbToBytes, mcpServersPermissionsSchema, megabyte, memoryPermissionsSchema, memorySchema, menuBar, mergeFileConfig, messageFilterPiiSchema, messageFilterSchema, mimeTypeAliases, modelConfigSchema, modelSpecSubagentsSchema, modularEndpoints, multiConvoPermissionsSchema, navigationMenu, normalizeEndpointName, normalizeMCPToolKey, normalizeServerName, ocrSchema, omitsSamplingParameters, omitsThinkingByDefault, openAIBaseSchema, openAISchema, openAISettings, openRouterSchema, openapiToFunction, orderEndpointsConfig, pagination, paramDefinitionSchema, paramEndpoints, paramSettings, parseCompactConvo, parseConvo, parseEphemeralAgentId, parseTextParts, peoplePickerPermissionsSchema, permBitsToAccessLevel, permissionEntrySchema, permissionsSchema, popover, presetSettings, principalSchema, progress, promptPermissionsSchema, promptTokensFromUsage, providerEndpointMap, radioGroup, rateLimitSchema, reconcileContextUsage, registerPage, remoteAgentsPermissionsSchema, removeNullishValues, replaceSpecialVars, request_default as request, requiresExplicitThinkingDisabled, resolveEndpointType, resolveRef, resolveThinkingDisplay, resourcePermissionsResponseSchema, retainRecentConfigSchema, retrievalMimeTypes, retrievalMimeTypesList, roleDefaults, roleSchema, runCodePermissionsSchema, select, separator, setAcceptLanguageHeader, setFileConfigRegexCompiler, setMessageFilterRegexValidator, setTokenHeader, sha1, shadcnComponents, sharedFileDownload, sharedLinksPermissionsSchema, skeleton, skillPermissionsSchema, skillSyncConfigSchema, skillSyncGitHubSourceSchema, slider, specialVariables, specsConfigSchema, splitMCPToolKey, splitToolCallName, stripAgentIdSuffix, summarizationConfigSchema, summarizationTriggerSchema, supportedMimeTypes, supportsAdaptiveThinking, supportsBalanceCheck, supportsContext1m, supportsFiles, switchComponent, tBannerSchema, tConversationSchema, tConversationTagSchema, tConvoUpdateSchema, tExampleSchema, tMessageSchema, tModelSpecPresetSchema, tModelSpecSchema, tPluginAuthConfigSchema, tPluginSchema, tPresetSchema, tQueryParamsSchema, tSharedLinkSchema, table, tabs, temporaryChatPermissionsSchema, textMimeTypes, textarea, toMinimalFeedback, toast, toaster, toggle, toggleGroup, toolApprovalHookConfigSchema, toolApprovalModeSchema, toolApprovalPolicySchema, tooltip, transactionsSchema, turnstileOptionsSchema, turnstileSchema, updateResourcePermissionsRequestSchema, updateResourcePermissionsResponseSchema, useToast, utils, validateActionDomain, validateAndParseOpenAPISpec, validateAzureGroups, validateSettingDefinitions, validateVisionModel, vertexAISchema, vertexModelConfigSchema, videoMimeTypes, visionModels, webSearchPermissionsSchema, webSearchSchema };
|
|
7459
|
+
export { ACTION_METADATA_FILTER_FIELDS, AGENT_INSTRUCTION_FILTER_FIELDS, AUTH_USER_DOC_BY_ID_PREFIX, AccessRoleIds, ActionRequest, ActivityLabelEvents, AgentCapabilities, AnnotationTypes, AnthropicEffort, ApprovalEvents, ArtifactModes, AssistantStreamEvents, AuthKeys, AuthType, AuthTypeEnum, AuthorizationTypeEnum, BASE_ONLY_CONFIG_SECTIONS, BASE_PRINCIPAL_CONFIG_SECTIONS, BEDROCK_FINE_GRAINED_TOOL_STREAMING_BETA, BEDROCK_OUTPUT_128K_BETA, BedrockProviders, BedrockReasoningConfig, CODE_ENV_KINDS, CONVERSATION_STARTER_FILTER_FIELDS, CONVERSATION_TITLE_FILTER_FIELDS, CacheKeys, Capabilities, CohereConstants, ComponentTypes, Constants, ContentTypes, DATE_RANGE, DEFAULT_MEMORY_MAX_INPUT_TOKENS, DynamicQueryKeys, EImageOutputType, EModelEndpoint, EToolResources, EndpointURLs, ErrorTypes, FEEDBACK_FILTER_FIELDS, FEEDBACK_RATINGS, FEEDBACK_REASON_KEYS, FEEDBACK_TAGS, FILE_FILTER_FIELDS, FILTER_PII_STARTER_PATTERNS, FetchTokenConfig, FileContext, FilePurpose, FileSources, ForkOptions, FunctionSignature, HITL_MESSAGE_FILTER_FIELDS, INSIGHTS_MAX_RANGE_DAYS, INSIGHTS_SEARCH_MAX_LENGTH, INSIGHTS_SEARCH_MIN_LENGTH, INTERFACE_PERMISSION_FIELDS, ImageDetail, ImageDetailCost, ImageVisionTool, InfiniteCollections, InvocationMode, KnownEndpoints, LocalStorageKeys, MAX_CHAT_PROJECT_DESCRIPTION_LENGTH, MAX_CHAT_PROJECT_NAME_LENGTH, MAX_GRAPH_SUBAGENT_MEMBERS, MAX_PII_CUSTOM_PATTERNS_TOTAL, MAX_PII_CUSTOM_REGEX_CHARACTERS, MAX_PII_CUSTOM_REGEX_INSTRUCTIONS, MAX_PII_PATTERNS_PER_SOURCE, MAX_PII_PATTERN_ID_LENGTH, MAX_PII_PATTERN_LABEL_LENGTH, MAX_PII_PATTERN_LENGTH, MAX_SUBAGENTS, MAX_SUBAGENTS_CEILING, MAX_SUBAGENT_DEPTH, MAX_SUBAGENT_GRAPH_NODES, MAX_SUBAGENT_RUN_CONFIGS, MCPOptionsSchema, MCPServerUserInputSchema, MCPServersSchema, MCP_SERVER_TITLE_ERROR, MCP_SERVER_TITLE_PATTERN, MCP_USER_INPUT_FIELDS, MEMORY_FILTER_FIELDS, MESSAGE_FILTER_FIELDS, MIN_REPORTABLE_RUN_STEP_DURATION_MS, MODEL_PARAMETER_FILTER_FIELDS, MYTHOS_CLASS_FAMILIES, MemoryScope, MessageContentTypes, MutationKeys, OCRStrategy, OptionTypes, PERMISSION_SUB_KEYS, PERMISSION_TYPE_INTERFACE_FIELDS, PROMPT_FILTER_FIELDS, PermissionBits, PermissionTypes, Permissions, PrincipalModel, PrincipalType, ProviderId, Providers, QueryKeys, REFILL_INTERVAL_UNITS, RUNTIME_CONFIG_INTERFACE_FIELDS, RateLimitPrefix, ReasoningContext, ReasoningEffort, ReasoningLabelEvents, ReasoningMode, ReasoningParameterFormat, ReasoningResponseKey, ReasoningSummary, RerankerTypes, ResourceType, RetentionMode, RunStatus, SCHEDULE_CRON_MAX_LENGTH, SEPARATORS, SKILL_BODY_MAX_LENGTH, SKILL_DESCRIPTION_MAX_LENGTH, SKILL_DESCRIPTION_SHORT_THRESHOLD, SKILL_DISPLAY_TITLE_MAX_LENGTH, SKILL_FILTER_FIELDS, SKILL_NAME_MAX_LENGTH, SKILL_NAME_PATTERN, SKILL_SYNC_DEFAULT_DISCOVERY_DEPTH, SKILL_SYNC_MAX_DISCOVERY_DEPTH, SKILL_SYNC_MAX_INTERVAL_MINUTES, SKILL_SYNC_MIN_INTERVAL_MINUTES, SSEOptionsSchema, STATEFUL_CODE_ENVIRONMENTS, STORED_MESSAGE_FILTER_FIELDS, STTProviders, SafeSearchTypes, ScraperProviders, SearchCategories, SearchProviders, SettingTypes, SettingsTabValues, SettingsViews, SkillsScope, StdioOptionsSchema, SteerEvents, StepEvents, StepStatus, StepTypes, StreamableHTTPOptionsSchema, SystemCategories, SystemRoles, TOOL_ARGUMENT_FILTER_FIELDS, TTSProviders, ThinkingDisplay, ThinkingLevel, Time, TokenExchangeMethodEnum, ToolCallTypes, Tools, UsageEvents, Verbosity, ViolationTypes, VisionModes, WebSocketOptionsSchema, accessRoleSchema, accessRoleToPermBits, accordian, actionDelimiter, actionDomainSeparator, actionMetadataFilterFieldSchema, agentInstructionFilterFieldSchema, agentParamSettings, agentPermissionsSchema, agentQueuedTurnCapabilitySchema, agentQueuedTurnDurability, agentQueuedTurnFileRefSchema, agentQueuedTurnReceiptSchema, agentQueuedTurnStatuses, agentsBaseSchema, agentsEndpointSchema, agentsSchema, agentsSettings, alert, alertDialog, allowedAddressesSchema, alternateName, anthropicBaseSchema, anthropicEndpointSchema, anthropicSchema, anthropicSettings, apiBaseUrl, appendAgentIdSuffix, applicationMimeTypes, applyModelAwareDefaults, assistantEndpointSchema, assistantSchema, audioMimeTypes, authTypeSchema, avatar, azureBaseSchema, azureEndpointSchema, azureGroupConfigsSchema, azureGroupSchema, badge, balanceSchema, baseEndpointSchema, bedrockDocumentExtensions, bedrockDocumentFormats, bedrockDocumentMimeTypes, bedrockEndpointSchema, bedrockGuardrailConfigSchema, bedrockInputParser, bedrockInputSchema, bedrockModels, bedrockOutputParser, bookmarkPermissionsSchema, breadcrumb, buildLoginRedirectUrl, buildServerNameAliases, buildTree, button, cacheSubsetProviders, cadenceIntervalMinutes, cadenceToCron, calendar, cancelAgentQueuedTurnResponseSchema, cancelAgentQueuedTurnSchema, capsEffortWhenThinkingDisabled, card, carousel, checkOpenAIStorage, checkbox, checkpointerSchema, checkpointerTypeSchema, clampEffortForDisabledThinking, clampOutputConfigEffort, clampSettingRange, cloudfrontConfigSchema, codeEnvironmentPermissionDecisionSchema, codeEnvironmentUserConfigSchema, codeEnvironmentUserSettingsSchema, codeInterpreterMimeTypes, codeInterpreterMimeTypesList, codeTypeMapping, coerceNumber, collapsible, compactAgentsBaseSchema, compactAgentsSchema, compactAssistantSchema, compactGoogleSchema, configSchema, contextPruningSchema, conversationStarterFilterFieldSchema, conversationTitleFilterFieldSchema, convertStringsToRegex, createPayload, createSchedulePayloadSchema, createURL, cronCadenceSchema, data_service_exports as dataService, defaultAgentCapabilities, defaultAgentFormValues, defaultAssistantFormValues, defaultAssistantsVersion, defaultEndpoints, defaultModels, defaultOCRMimeTypes, defaultOrderQuery, defaultRetrievalModels, defaultSTTMimeTypes, defaultSocialLogins, defaultTextMimeTypes, dialog, documentParserMimeTypes, documentSupportedProviders, drawer, dropdownMenu, eAnthropicEffortSchema, eImageDetailSchema, eModelEndpointSchema, eReasoningContextSchema, eReasoningEffortSchema, eReasoningModeSchema, eReasoningParameterFormatSchema, eReasoningResponseKeySchema, eReasoningSummarySchema, eThinkingDisplaySchema, eThinkingLevelSchema, eVerbositySchema, effectivePermissionsResponseSchema, encodeEphemeralAgentId, endpointFileConfigSchema, endpointSchema, endpointSettings, endpointToProvider, enqueueAgentQueuedTurnResponseSchema, enqueueAgentQueuedTurnSchema, envVarRegex, errorsToString, essentialShadcnComponents, excelFileTypes, excelMimeTypes, excludedKeys, extendedModelEndpointSchema, extractDomainFromUrl, extractEnvVariable, extractVariableName, feedbackFilterFieldSchema, feedbackRatingSchema, feedbackSchema, feedbackTagKeySchema, fileCitationsPermissionsSchema, fileConfig, fileConfigSchema, fileFilterFieldSchema, fileSearchPermissionsSchema, fileSourceSchema, fileStorageSchema, fileStrategiesSchema, filterPiiActionSchema, filterPiiCustomPatternSchema, filterPiiRegexSchema, filterPiiStarterPatternSchema, filtersConfigSchema, findLastSeparatorIndex, fullMimeTypesList, generateDynamicSchema, generateGoogleSchema, generateOpenAISchema, getCodeEnvRefForProfile, getCodeEnvRefs, getConfigDefaults, getConfiguredMimeAccept, getDefaultParamsEndpoint, getEnabledEndpoints, getEndpointField, getEndpointFileConfig, getEphemeralSender, getFirstDefinedValue, getGoogleThinkingBudgetBounds, getGoogleThinkingBudgetMax, getMaxSubagents, getModelKey, getNonEmptyValue, getPiiRegexProgramSize, getRefillEligibilityDate, getResourcePermissionsResponseSchema, getResponseSender, getRunStepDurationMs, getSchemaDefaults, getSettingsKeys, getTagByKey, getTagsForRating, getTokenHeader, googleBaseSchema, googleGenConfigSchema, googleSchema, googleSettings, hasActiveFiltersConfig, hasActivePiiFields, hasActivePiiPatterns, hasPermissions, hasProcessMCPServerConfig, hostImageIdSuffix, hostImageNamePrefix, hoverCard, imageDetailNumeric, imageDetailValue, imageExtRegex, imageGenTools, imageMimeTypes, imageTypeMapping, inferMimeType, initialModelsConfig, input, inputTokensIncludesCache, interfaceSchema, isActionTool, isAgentsEndpoint, isAnthropicDocumentType, isAnthropicTextDocumentType, isAssistantsEndpoint, isBedrockDocumentType, isCronCadence, isDocumentSupportedProvider, isEphemeralAgentId, isImageVisionTool, isMythosClassModel, isOpenAILikeProvider, isParamEndpoint, isPermissiveMimeConfig, isProcessMCPServerConfig, isProcessMCPServerField, isRemoteOidcUrlAllowed, isReportableRunStepDuration, isSecureCodeEnvironmentControlURL, isSensitiveEnvVar, isSystemRoleName, isThinkingDisabled, isUUID, isValidCronExpression, knownEndpointToProvider, label, langfuseConfigSchema, librechat, listAgentQueuedTurnsResponseSchema, listAgentQueuedTurnsSchema, loginPage, mapGroupToAzureConfig, mapModelToAzureConfig, marketplacePermissionsSchema, materializeModelSpecEndpoints, mbToBytes, mcpServersPermissionsSchema, megabyte, memoryFilterFieldSchema, memoryPermissionsSchema, memorySchema, menuBar, mergeCodeEnvRef, mergeFileConfig, messageFilterFieldSchema, messageFilterPiiSchema, messageFilterSchema, mimeTypeAliases, modelConfigSchema, modelParameterFilterFieldSchema, modelSpecSubagentsSchema, modularEndpoints, multiConvoPermissionsSchema, navigationMenu, nextRunInstants, normalizeActionToolName, normalizeEndpointName, normalizeMCPToolKey, normalizeSearxngEngines, normalizeServerName, ocrSchema, omitsSamplingParameters, omitsThinkingByDefault, openAIBaseSchema, openAISchema, openAISettings, openRouterSchema, openapiToFunction, orderEndpointsConfig, pagination, paramDefinitionSchema, paramEndpoints, paramSettings, parseCompactConvo, parseConvo, parseEphemeralAgentId, parseLangChainErrorCode, parseTextParts, peoplePickerPermissionsSchema, permBitsToAccessLevel, permissionEntrySchema, permissionsSchema, popover, presetSettings, principalSchema, progress, promptFilterFieldSchema, promptPermissionsSchema, promptTokensFromUsage, providerEndpointMap, radioGroup, rateLimitSchema, reconcileContextUsage, registerPage, remoteAgentsPermissionsSchema, removeCodeExecutionCaller, removeNullishValues, replaceSpecialVars, request_default as request, requiresExplicitThinkingDisabled, resolveAgentSkillsScope, resolveAllowedStatefulCodeEnvironments, resolveEndpointType, resolveModelCatalogKey, resolveModelSpecEndpoint, resolveProviderId, resolveRef, resolveStatefulCodeEnvironment, resolveThinkingDisplay, resourcePermissionsResponseSchema, retainRecentConfigSchema, retrievalMimeTypes, retrievalMimeTypesList, roleDefaults, roleSchema, runCodePermissionsSchema, scheduleCadenceSchema, scheduleFrequencies, scheduleStructuredFrequencies, scheduleTargets, schedulesPermissionsSchema, select, separator, setAcceptLanguageHeader, setFileConfigRegexCompiler, setMaxSubagents, setMessageFilterRegexValidator, setTokenHeader, sha1, shadcnComponents, sharedFileDownload, sharedLinksPermissionsSchema, skeleton, skillFilterFieldSchema, skillPermissionsSchema, skillSyncConfigSchema, skillSyncGitHubSourceSchema, slider, specialVariables, specsConfigSchema, splitMCPToolKey, splitToolCallName, stripAgentIdSuffix, stripLangChainTroubleshootingUrl, stripReasoningLabelMetadata, stripServerNamePrefix, stripServerNamePrefixes, structuredCadenceSchema, subagentThreadLineageSchema, summarizationConfigSchema, summarizationTriggerSchema, supportedMimeTypes, supportsAdaptiveThinking, supportsBalanceCheck, supportsContext1m, supportsFiles, supportsPromptCache, switchComponent, tBannerSchema, tConversationSchema, tConversationTagSchema, tConvoUpdateSchema, tExampleSchema, tMessageSchema, tModelSpecPresetSchema, tModelSpecSchema, tPluginAuthConfigSchema, tPluginSchema, tPresetSchema, tQueryParamsSchema, tSharedLinkSchema, table, tabs, temporaryChatPermissionsSchema, textMimeTypes, textarea, toMinimalFeedback, toast, toaster, toggle, toggleGroup, toolApprovalHookConfigSchema, toolApprovalModeSchema, toolApprovalPolicySchema, toolArgumentFilterFieldSchema, tooltip, transactionsSchema, turnstileOptionsSchema, turnstileSchema, unattributedAssistantContentSchema, updateResourcePermissionsRequestSchema, updateResourcePermissionsResponseSchema, updateSchedulePayloadSchema, useToast, userSubmittedMessageFieldPathSchema, utils, validateActionDomain, validateAndParseOpenAPISpec, validateAzureGroups, validateSettingDefinitions, validateVisionModel, vertexAISchema, vertexModelConfigSchema, videoMimeTypes, visionModels, webSearchPermissionsSchema, webSearchSchema };
|
|
6672
7460
|
|
|
6673
7461
|
//# sourceMappingURL=index.mjs.map
|