Enhanced ChatGPT Clone: Features Agents, MCP, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini, Artifacts, AI model switching, message search, Code Interpreter, langchain, DALL-E-3, OpenAPI Actions, Functions, Secure Multi-User Auth, Presets, open-source for self-hosting. Active.
688 matches across 10 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | config/migrate-orphaned-agent-files.js | 28 | async function migrateOrphanedAgentFiles({ dryRun = true, batchSize = 100 } = {}) { |
| LOW | config/migrate-agent-permissions.js | 23 | async function migrateAgentPermissionsEnhanced({ dryRun = true, batchSize = 100 } = {}) { |
| LOW | config/migrate-prompt-permissions.js | 16 | async function getGlobalProjectPromptGroupIds(db) { |
| LOW | config/migrate-prompt-permissions.js | 23 | async function migrateToPromptGroupPermissions({ dryRun = true, batchSize = 100 } = {}) { |
| LOW | config/translations/instructions.ts | 14 | function generateMarkdownFromObject(obj: object, depth = 0): string { |
| LOW | config/translations/instructions.ts | 60 | async function createPromptsForTranslations() { |
| LOW | utils/update_env.py | 42 | def update_env_file_with_local_env(input_file_path, output_file_path): |
| LOW | packages/data-schemas/src/methods/systemGrant.ts | 65 | async function hasCapabilityForPrincipals({ |
| LOW | packages/data-schemas/src/methods/systemGrant.ts | 264 | async function getCapabilitiesForPrincipal({ |
| LOW | packages/data-schemas/src/methods/systemGrant.ts | 321 | async function getCapabilitiesForPrincipals({ |
| LOW | packages/data-schemas/src/methods/mcpServer.ts | 35 | function generateServerNameFromTitle(title: string): string { |
| LOW | packages/data-schemas/src/methods/mcpServer.ts | 52 | async function findNextAvailableServerName( |
| LOW | packages/data-schemas/src/methods/mcpServer.ts | 153 | async function findMCPServerByServerName(serverName: string): Promise<MCPServerDocument | null> { |
| LOW | packages/data-schemas/src/methods/prompt.ts | 192 | async function getListPromptGroupsByAccess({ |
| LOW | packages/data-schemas/src/methods/prompt.ts | 308 | async function incrementPromptGroupUsage(groupId: string) { |
| LOW | packages/data-schemas/src/methods/prompt.ts | 485 | async function getPromptGroupsWithPrompts(filter: Record<string, unknown>) { |
| LOW | packages/data-schemas/src/methods/agent.ts | 201 | async function generateActionMetadataHash( |
| LOW | packages/data-schemas/src/methods/agent.ts | 285 | async function hasAgentWithMCPServerName({ |
| LOW | packages/data-schemas/src/methods/agent.ts | 305 | async function getMCPServerNamesByAgentIds(agentIds: Types.ObjectId[]): Promise<string[]> { |
| LOW | packages/data-schemas/src/methods/agent.ts | 543 | async function removeAgentResourceFilesFromAllAgents({ |
| LOW | packages/data-schemas/src/methods/agent.ts | 849 | async function removeAgentFromUserFavorites( |
| LOW | packages/data-schemas/src/methods/agentCategory.ts | 5 | export function createAgentCategoryMethods(mongoose: typeof import('mongoose')) { |
| LOW | packages/data-schemas/src/methods/conversationTag.ts | 15 | export function createConversationTagMethods(mongoose: typeof import('mongoose')) { |
| LOW | packages/data-schemas/src/methods/conversationTag.ts | 191 | async function updateTagsForConversation(user: string, conversationId: string, tags: string[]) { |
| LOW | packages/data-schemas/src/methods/aclEntry.ts | 121 | async function findEntriesByPrincipalsAndResource( |
| LOW | packages/data-schemas/src/methods/aclEntry.ts | 216 | async function getEffectivePermissionsForResources( |
| LOW | packages/data-schemas/src/methods/transaction.ts | 95 | function calculateStructuredTokenValue(txn: InternalTxDoc) { |
| LOW | packages/data-schemas/src/methods/transaction.ts | 268 | async function createAutoRefillTransaction(txData: TxData) { |
| LOW | packages/data-schemas/src/methods/transaction.ts | 335 | async function createStructuredTransaction( |
| LOW | packages/data-schemas/src/methods/agent.spec.ts | 3632 | function mockFindOneAndUpdateError(errorOnCall = 1) { |
| LOW | packages/data-schemas/src/methods/conversation.ts | 63 | export function createConversationMethods( |
| LOW | packages/data-schemas/src/methods/conversation.ts | 74 | function getVisibleConversationRetentionFilter(): FilterQuery<IConversation> { |
| LOW | packages/data-schemas/src/methods/conversation.ts | 128 | async function deleteNullOrEmptyConversations() { |
| LOW | packages/data-schemas/src/methods/userGroup.ts | 500 | function transformUserToTPrincipalSearchResult(user: TUser): TPrincipalSearchResult { |
| LOW | packages/data-schemas/src/methods/userGroup.ts | 519 | function transformGroupToTPrincipalSearchResult(group: IGroup): TPrincipalSearchResult { |
| LOW | packages/data-schemas/src/methods/skill.ts | 179 | export function validateSkillDisplayTitle(displayTitle: unknown): ValidationIssue[] { |
| LOW | packages/data-schemas/src/methods/skill.ts | 502 | export function deriveStructuredFrontmatterFields( |
| LOW | packages/data-schemas/src/methods/skill.ts | 687 | function extractAlwaysApplyFromBody(body: string | undefined): BodyAlwaysApplyResult { |
| LOW | packages/data-schemas/src/methods/skill.ts | 757 | function resolveAlwaysApplyFromInput( |
| LOW | packages/data-schemas/src/methods/skill.ts | 790 | export function validateAlwaysApplyInBody(body: string | undefined): ValidationIssue[] { |
| LOW | packages/data-schemas/src/methods/skill.ts | 1381 | async function bumpSkillVersionAndAdjustFileCount( |
| LOW | packages/data-schemas/src/methods/skill.ts | 1493 | async function updateSkillFileCodeEnvIds( |
| LOW | packages/data-schemas/src/config/parsers.ts | 27 | function getMatchingSensitivePatterns(valueStr: string): RegExp[] { |
| LOW | packages/data-schemas/src/utils/tempChatRetention.ts | 24 | export function getTempChatRetentionHours( |
| LOW | packages/data-schemas/src/utils/tempChatRetention.ts | 74 | export function createTempChatExpirationDate(interfaceConfig?: AppConfig['interfaceConfig']): Date { |
| LOW | packages/data-schemas/src/models/conversationTag.ts | 4 | export function createConversationTagModel(mongoose: typeof import('mongoose')) { |
| LOW | packages/api/src/middleware/share.ts | 89 | export function createSharePolicyMiddleware({ getRoleByName, hasCapability }: SharePolicyDeps): { |
| LOW | packages/api/src/middleware/share.ts | 141 | async function hasResourceManagementCapability( |
| LOW | packages/api/src/middleware/capabilities.ts | 63 | export function capabilityContextMiddleware( |
| LOW | packages/api/src/middleware/concurrency.ts | 103 | export async function checkAndIncrementPendingRequest( |
| LOW | packages/api/src/middleware/remoteAgentAuth.ts | 59 | export function clearRemoteAgentAuthCache(): void { |
| LOW | packages/api/src/middleware/remoteAgentAuth.ts | 131 | function ensureRemoteOidcUrlAllowed(value: string, label: string): string { |
| LOW | packages/api/src/middleware/remoteAgentAuth.ts | 254 | function isResolvedUserConfigScope(initialOptions: GetAppConfigOptions, user: IUser): boolean { |
| LOW | packages/api/src/middleware/remoteAgentAuth.ts | 287 | async function enforceApiKeyTenantPolicy( |
| LOW | packages/api/src/middleware/tenant.ts | 208 | async function rejectRequestWithUploadCleanup( |
| LOW | packages/api/src/middleware/tenant.ts | 217 | function rejectRequestWithUploadCleanupInContext( |
| LOW | packages/api/src/middleware/tenant.ts | 237 | export function restoreTenantContextFromReq( |
| LOW | packages/api/src/tools/classification.ts | 56 | export function buildToolRegistryFromAgentOptions( |
| LOW | packages/api/src/tools/classification.ts | 215 | export function agentHasProgrammaticTools(toolRegistry: LCToolRegistry): boolean { |
| LOW | packages/api/src/tools/toolkits/web.ts | 26 | export function buildWebSearchDynamicContext(now?: string | number | Date): string { |
| 273 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | librechat.example.yaml | 396 | # # ============================================================================ |
| MEDIUM | librechat.example.yaml | 399 | # # ============================================================================ |
| MEDIUM | config/test-subdirectory-setup.sh | 2 | # ============================================================================= |
| MEDIUM | config/test-subdirectory-setup.sh | 21 | # ============================================================================= |
| MEDIUM | …ta-schemas/misc/ferretdb/multiTenancy.ferretdb.spec.ts | 225 | // ─── PHASE 1: DATABASE-PER-ORG SCHEMA MAPPING ──────────────────────────── |
| MEDIUM | …ta-schemas/misc/ferretdb/multiTenancy.ferretdb.spec.ts | 290 | // ─── PHASE 2: INDEX INITIALIZATION ──────────────────────────────────────── |
| MEDIUM | …ta-schemas/misc/ferretdb/multiTenancy.ferretdb.spec.ts | 378 | // ─── PHASE 3: SCALING CURVE ─────────────────────────────────────────────── |
| MEDIUM | …ta-schemas/misc/ferretdb/multiTenancy.ferretdb.spec.ts | 508 | // ─── PHASE 4: WRITE AMPLIFICATION ──────────────────────────────────────── |
| MEDIUM | …ta-schemas/misc/ferretdb/multiTenancy.ferretdb.spec.ts | 578 | // ─── PHASE 5: SHARED-COLLECTION ALTERNATIVE ────────────────────────────── |
| MEDIUM | …s/data-schemas/misc/ferretdb/sharding.ferretdb.spec.ts | 56 | // ─── TYPES ────────────────────────────────────────────────────────────────── |
| MEDIUM | …s/data-schemas/misc/ferretdb/sharding.ferretdb.spec.ts | 70 | // ─── ALL 29 LIBRECHAT SCHEMAS ─────────────────────────────────────────────── |
| MEDIUM | …s/data-schemas/misc/ferretdb/sharding.ferretdb.spec.ts | 106 | // ─── TENANT ROUTER (INLINE POC) ──────────────────────────────────────────── |
| MEDIUM | …s/data-schemas/misc/ferretdb/sharding.ferretdb.spec.ts | 306 | // ─── TESTS ────────────────────────────────────────────────────────────────── |
| MEDIUM | …a-schemas/misc/ferretdb/orgOperations.ferretdb.spec.ts | 93 | // ─── BACKUP/RESTORE UTILITIES ─────────────────────────────────────────────── |
| MEDIUM | …a-schemas/misc/ferretdb/orgOperations.ferretdb.spec.ts | 136 | // ─── MIGRATION UTILITIES ──────────────────────────────────────────────────── |
| MEDIUM | …a-schemas/misc/ferretdb/orgOperations.ferretdb.spec.ts | 198 | // ─── TESTS ────────────────────────────────────────────────────────────────── |
| MEDIUM | …a-schemas/misc/ferretdb/orgOperations.ferretdb.spec.ts | 219 | // ─── RETRY UTILITY ────────────────────────────────────────────────────── |
| MEDIUM | …a-schemas/misc/ferretdb/orgOperations.ferretdb.spec.ts | 307 | // ─── REAL DEADLOCK RETRY ──────────────────────────────────────────────── |
| MEDIUM | …a-schemas/misc/ferretdb/orgOperations.ferretdb.spec.ts | 337 | // ─── BACKUP/RESTORE ───────────────────────────────────────────────────── |
| MEDIUM | …a-schemas/misc/ferretdb/orgOperations.ferretdb.spec.ts | 538 | // ─── SCHEMA MIGRATION ────────────────────────────────────────────────── |
| MEDIUM | packages/api/src/app/service.ts | 15 | // ── Types ──────────────────────────────────────────────────────────── |
| MEDIUM | packages/api/src/app/service.ts | 60 | // ── Helpers ────────────────────────────────────────────────────────── |
| MEDIUM | packages/api/src/app/service.ts | 89 | // ── Service factory ────────────────────────────────────────────────── |
| MEDIUM | packages/api/src/admin/config.handler.spec.ts | 617 | // ── Invariant tests: rules that must hold across ALL handlers ────── |
| MEDIUM | packages/api/src/admin/config.ts | 117 | // ── Validation helpers ─────────────────────────────────────────────── |
| MEDIUM | packages/api/src/admin/config.ts | 158 | // ── Handler factory ────────────────────────────────────────────────── |
| MEDIUM | …/agents/responses/__tests__/responses-api.live.test.sh | 23 | # ── Helpers ─────────────────────────────────────────────────────────── |
| MEDIUM | …/agents/responses/__tests__/responses-api.live.test.sh | 80 | # ── Test 1: Basic single-turn request ───────────────────────────────── |
| MEDIUM | …/agents/responses/__tests__/responses-api.live.test.sh | 91 | # ── Test 2: Multi-turn with output_text assistant blocks ────────────── |
| MEDIUM | …/agents/responses/__tests__/responses-api.live.test.sh | 118 | # ── Test 3: Multi-turn with refusal blocks ──────────────────────────── |
| MEDIUM | …/agents/responses/__tests__/responses-api.live.test.sh | 145 | # ── Test 4: Streaming request ───────────────────────────────────────── |
| MEDIUM | …/agents/responses/__tests__/responses-api.live.test.sh | 156 | # ── Test 5: Back-and-forth using previous_response_id ───────────────── |
| MEDIUM | …/agents/responses/__tests__/responses-api.live.test.sh | 185 | # ── Summary ─────────────────────────────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 5 | // ── String input shorthand ───────────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 11 | // ── Empty input array ────────────────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 17 | // ── Role mapping ─────────────────────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 49 | // ── input_text content blocks ────────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 62 | // ── output_text content blocks (the original bug) ────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 77 | // ── refusal content blocks ───────────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 92 | // ── input_image content blocks ───────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 117 | // ── input_file content blocks ────────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 146 | // ── Null / undefined filtering ───────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 159 | // ── Missing text field defaults to empty string ──────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 196 | // ── Unknown block types are filtered out ─────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 212 | // ── Mixed valid/invalid content in same array ────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 238 | // ── Non-array, non-string content defaults to empty string ───────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 245 | // ── Function call items ──────────────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 272 | // ── Function call output items ───────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 291 | // ── Item references are skipped ──────────────────────────────────── |
| MEDIUM | …ges/api/src/agents/responses/__tests__/service.test.ts | 301 | // ── Multi-turn conversation (the real-world scenario) ────────────── |
| MEDIUM | .github/workflows/gitnexus-deploy.yml | 387 | # ── Step 1: prune FIRST ──────────────────────────────── |
| MEDIUM | .github/workflows/gitnexus-deploy.yml | 413 | # ── Step 2: rsync-then-swap ───────────────────────────── |
| MEDIUM | .github/workflows/gitnexus-deploy.yml | 461 | # ── Disk cleanup ────────────────────────────────────── |
| MEDIUM | api/server/middleware/__tests__/requireJwtAuth.spec.js | 13 | // ── Mocks ────────────────────────────────────────────────────────────── |
| MEDIUM | api/server/middleware/__tests__/requireJwtAuth.spec.js | 84 | // ── Helpers ───────────────────────────────────────────────────────────── |
| MEDIUM | api/server/middleware/__tests__/requireJwtAuth.spec.js | 116 | // ── Tests ────────────────────────────────────────────────────────────── |
| MEDIUM | …rvices/Config/__tests__/invalidateConfigCaches.spec.js | 1 | // ── Mocks ────────────────────────────────────────────────────────────── |
| MEDIUM | …rvices/Config/__tests__/invalidateConfigCaches.spec.js | 42 | // ── Tests ────────────────────────────────────────────────────────────── |
| MEDIUM | …c/utils/__tests__/applyModelSpecEphemeralAgent.test.ts | 44 | // ─── New Conversations ───────────────────────────────────────────── |
| MEDIUM | …c/utils/__tests__/applyModelSpecEphemeralAgent.test.ts | 123 | // ─── Existing Conversations: Per-Conversation Persistence ────────── |
| 6 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | packages/data-schemas/src/methods/prompt.spec.ts | 142 | email: 'admin@example.com', |
| LOW | packages/data-schemas/src/methods/user.methods.spec.ts | 433 | { name: 'John Doe', email: 'john@example.com', username: 'johnd', provider: 'local' }, |
| LOW | packages/data-schemas/src/methods/user.methods.spec.ts | 612 | email: 'user@example.com', |
| LOW | packages/data-schemas/src/methods/user.methods.spec.ts | 662 | name: 'John Doe', |
| LOW | packages/data-schemas/src/methods/user.methods.spec.ts | 678 | expect(found?.name).toBe('John Doe'); |
| LOW | packages/data-schemas/src/methods/file.acl.spec.ts | 84 | email: 'user@example.com', |
| LOW | packages/data-schemas/src/methods/file.acl.spec.ts | 234 | email: 'user@example.com', |
| LOW | packages/data-schemas/src/methods/file.acl.spec.ts | 297 | email: 'user@example.com', |
| LOW | packages/api/src/middleware/remoteAgentAuth.spec.ts | 1308 | expect(await captureEmailArg({ sub: 's1', email: 'user@example.com' })).toBe( |
| LOW | packages/api/src/middleware/remoteAgentAuth.spec.ts | 1309 | 'user@example.com', |
| LOW | packages/api/src/middleware/remoteAgentAuth.spec.ts | 1339 | email: 'user@example.com', |
| LOW | packages/api/src/auth/domain.spec.ts | 95 | const email = 'user@example.com'; |
| LOW | packages/api/src/auth/refresh.spec.ts | 28 | email: 'admin@example.com', |
| LOW | packages/api/src/auth/refresh.spec.ts | 137 | email: 'admin@example.com', |
| LOW | packages/api/src/auth/refresh.spec.ts | 167 | expect(result.user.email).toBe('admin@example.com'); |
| LOW | packages/api/src/auth/refresh.spec.ts | 638 | expect(logger.debug).toHaveBeenCalledWith(expect.stringContaining('admin@example.com')); |
| LOW | packages/api/src/auth/exchange.spec.ts | 21 | email: 'admin@example.com', |
| LOW | packages/api/src/auth/exchange.spec.ts | 50 | expect(result!.user.email).toBe('admin@example.com'); |
| LOW | packages/api/src/auth/openid.spec.ts | 312 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 322 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 330 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 699 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 704 | expect(mockFindUser).toHaveBeenCalledWith({ email: 'user@example.com' }); |
| LOW | packages/api/src/auth/openid.spec.ts | 713 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 752 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 761 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 765 | expect(mockFindUser).toHaveBeenCalledWith({ email: 'user@example.com' }); |
| LOW | packages/api/src/auth/openid.spec.ts | 967 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 976 | expect(getOpenIdEmail({ email: 'user@example.com' }, 'remoteAgentAuth')).toBe( |
| LOW | packages/api/src/auth/openid.spec.ts | 977 | 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 987 | expect(getOpenIdEmail({ email: 'user@example.com', groups: ['a'] })).toBe('user@example.com'); |
| LOW | packages/api/src/auth/openid.spec.ts | 98 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 108 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 128 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 163 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 174 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 195 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 205 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 225 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 258 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 292 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 296 | expect(mockFindUser).toHaveBeenCalledWith({ email: 'user@example.com' }); |
| LOW | packages/api/src/auth/openid.spec.ts | 348 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 386 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 398 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 413 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 423 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 439 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 449 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 465 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 475 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 491 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 501 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 516 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 529 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 547 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 557 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 577 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 587 | email: 'user@example.com', |
| LOW | packages/api/src/auth/openid.spec.ts | 601 | email: 'user@example.com', |
| 72 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | config/smart-reinstall.js | 143 | // Step 1: Dependencies |
| LOW | config/smart-reinstall.js | 163 | // Step 2: Build via Turborepo |
| LOW | packages/api/src/utils/oidc.spec.ts | 414 | // Step 1: Extract token info |
| LOW | packages/api/src/utils/oidc.spec.ts | 418 | // Step 2: Validate token |
| LOW | packages/api/src/utils/oidc.spec.ts | 422 | // Step 3: Process placeholders |
| LOW | packages/api/src/mcp/__tests__/mcp.spec.ts | 967 | // Step 1: preProcessGraphTokens resolves graph token placeholders (async) |
| LOW | packages/api/src/mcp/__tests__/mcp.spec.ts | 973 | // Step 2: processMCPEnv resolves user and env placeholders (sync) |
| LOW | packages/api/src/mcp/__tests__/mcp.spec.ts | 1005 | // Step 1: preProcessGraphTokens |
| LOW | packages/api/src/mcp/__tests__/mcp.spec.ts | 1011 | // Step 2: processMCPEnv |
| LOW | packages/api/src/mcp/__tests__/mcp.spec.ts | 1045 | // Step 1: preProcessGraphTokens |
| LOW | packages/api/src/mcp/__tests__/mcp.spec.ts | 1051 | // Step 2: processMCPEnv with customUserVars |
| LOW | packages/api/src/mcp/__tests__/mcp.spec.ts | 1078 | // Step 1: preProcessGraphTokens (no-op since no graph placeholders) |
| LOW | packages/api/src/mcp/__tests__/mcp.spec.ts | 1084 | // Step 2: processMCPEnv |
| LOW | packages/api/src/mcp/__tests__/mcp.spec.ts | 1117 | // Step 1: preProcessGraphTokens |
| LOW | packages/api/src/mcp/__tests__/mcp.spec.ts | 1123 | // Step 2: processMCPEnv |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 391 | // Step 1: Get initial tokens |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 405 | // Step 2: Store tokens with valid expiry first |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 413 | // Step 3: Verify tokens work |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 422 | // Step 4: Simulate token expiry by directly updating the stored token's expiresAt |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 425 | // Step 5: Revoke refresh token on server side (simulating server-side revocation) |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 428 | // Step 6: Try to get tokens — refresh should fail, return null |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 455 | // Step 7: Simulate the re-auth flow via FlowStateManager |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 471 | // Step 8: Get a new auth code and exchange for tokens (simulating user re-auth) |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 485 | // Step 9: Complete the flow |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 493 | // Step 10: Store the new tokens |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 503 | // Step 11: Verify new tokens work |
| LOW | …ages/api/src/mcp/__tests__/MCPOAuthTokenExpiry.test.ts | 512 | // Step 12: Verify new token works against server |
| LOW | …er/controllers/agents/__tests__/jobReplacement.spec.js | 233 | // Step 1: Save message |
| LOW | …er/controllers/agents/__tests__/jobReplacement.spec.js | 236 | // Step 2: Check for replacement |
| LOW | …er/controllers/agents/__tests__/jobReplacement.spec.js | 240 | // Step 3: Emit if not replaced |
| LOW | api/server/services/PermissionService.js | 489 | // Step 1: Get all group IDs user should be member of |
| LOW | api/server/services/PermissionService.js | 517 | // Step 2: Try to add user to existing groups (fast operation) |
| LOW | api/server/services/PermissionService.js | 532 | // Step 3: Find which groups don't exist in DB using db layer |
| LOW | api/server/services/PermissionService.js | 543 | // Step 4: Fetch details only for missing groups (optimized batch request) |
| LOW | api/server/services/PermissionService.js | 555 | // Step 5: Upsert missing groups (race-safe by design) |
| LOW | api/server/services/PermissionService.js | 572 | // Step 6: Add user to all newly created/upserted groups |
| LOW | api/server/services/PermissionService.js | 597 | // Step 7: Remove user from Entra groups they're no longer member of |
| LOW | client/src/utils/__tests__/citations.test.ts | 200 | // Step 1: Extract highlighted spans |
| LOW | client/src/utils/__tests__/citations.test.ts | 209 | // Step 2: Extract composite blocks |
| LOW | client/src/utils/__tests__/citations.test.ts | 224 | // Step 3: Extract standalone citations (not in composites) |
| LOW | client/src/utils/__tests__/citations.test.ts | 241 | // Step 4: Clean up text |
| LOW | client/src/hooks/Messages/useCopyToClipboard.ts | 130 | // Step 1: Process highlighted text first (simplify by just making it bold in markdown) |
| LOW | client/src/hooks/Messages/useCopyToClipboard.ts | 136 | // Step 2: Find all standalone citations and composite citation blocks |
| LOW | client/src/hooks/Messages/useCopyToClipboard.ts | 185 | // Step 3: Process each citation and build the reference mapping |
| LOW | client/src/hooks/Messages/useCopyToClipboard.ts | 325 | // Step 4: Apply all replacements (from longest to shortest to avoid nested replacement issues) |
| LOW | client/src/hooks/Messages/useCopyToClipboard.ts | 331 | // Step 5: Remove any orphaned composite blocks at the end of the text |
| LOW | client/src/hooks/Messages/useCopyToClipboard.ts | 335 | // Step 6: Clean up any remaining citation markers |
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | packages/api/src/app/service.spec.ts | 264 | const setCalls = deps._cache.set.mock.calls.filter( |
| CRITICAL | api/server/services/Threads/manage.js | 413 | promises.push(openai.beta.threads.runs.steps.list(run_id, { thread_id })); |
| CRITICAL | api/server/services/Runs/handle.js | 182 | const runSteps = await openai.beta.threads.runs.steps.list(run_id, { thread_id }); |
| CRITICAL | api/server/services/Runs/RunManager.js | 94 | // const { data: steps, first_id, last_id, has_more } = await openai.beta.threads.runs.steps.list(run_id, { thread_i |
| CRITICAL | api/server/services/Runs/RunManager.js | 95 | const { data: _steps } = await openai.beta.threads.runs.steps.list( |
| CRITICAL | api/server/services/Runs/StreamRunManager.js | 172 | const streamRun = this.openai.beta.threads.runs.createAndStream( |
| CRITICAL | api/server/services/Runs/StreamRunManager.js | 575 | toolRun = this.openai.beta.threads.runs.submitToolOutputsStream( |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | librechat.example.yaml | 1 | # For more information, see the Configuration Guide: |
| LOW | librechat.example.yaml | 21 | # Available strategies: "local", "s3", "firebase", "azure_blob", "cloudfront" |
| LOW | librechat.example.yaml | 41 | # # /a/... tenant-visible avatars, tenant-scoped when tenantId is present |
| LOW | librechat.example.yaml | 141 | # Remote Agents configuration |
| LOW | librechat.example.yaml | 161 | # de-DE: 'Ich verstehe und möchte fortfahren' # You can narrow translation to regions like (de-DE or de-CH) |
| LOW | librechat.example.yaml | 181 | #turnstile: |
| LOW | librechat.example.yaml | 201 | |
| LOW | librechat.example.yaml | 221 | # url: '' |
| LOW | librechat.example.yaml | 241 | # public destination not also listed. |
| LOW | librechat.example.yaml | 261 | # private IP, the exemption follows. Only list hostnames whose DNS you control. |
| LOW | librechat.example.yaml | 281 | # - 'localhost:11434' |
| LOW | librechat.example.yaml | 301 | # # Hostname/IP + port pairs listed here bypass the default-deny block for that |
| LOW | librechat.example.yaml | 321 | # args: |
| LOW | librechat.example.yaml | 341 | endpoints: |
| LOW | librechat.example.yaml | 361 | # disableBuilder: false |
| LOW | librechat.example.yaml | 381 | # # This is similar to Azure OpenAI but for Anthropic models on Google Cloud |
| LOW | librechat.example.yaml | 401 | # # Option 1: Simple array (legacy format - model name = deployment name) |
| LOW | librechat.example.yaml | 421 | # claude-3.7-sonnet: |
| LOW | librechat.example.yaml | 481 | # Summary Model: Specify the model to use if summarization is enabled. |
| LOW | librechat.example.yaml | 541 | summarize: false |
| LOW | librechat.example.yaml | 561 | # "us.anthropic.claude-sonnet-4-6": "${BEDROCK_INFERENCE_PROFILE_CLAUDE_SONNET}" |
| LOW | librechat.example.yaml | 581 | # The 'groupIcon' field sets an icon for custom groups: |
| LOW | librechat.example.yaml | 601 | # endpoint: "groq" |
| LOW | librechat.example.yaml | 621 | # preset: |
| LOW | librechat.example.yaml | 641 | # preset: |
| LOW | librechat.example.yaml | 661 | # serverFileSizeLimit: 100 # Global server file size limit in MB |
| LOW | librechat.example.yaml | 681 | # cohereApiKey: '${COHERE_API_KEY}' |
| LOW | librechat.example.yaml | 701 | # searchDepth: basic # 'basic', 'advanced', 'fast', or 'ultra-fast' (default: basic) |
| LOW | librechat.example.yaml | 721 | # # format: markdown # 'markdown' (default) or 'text' (plain text, may increase latency) |
| LOW | librechat.example.yaml | 741 | # id: "your-memory-agent-id" |
| LOW | config/test-subdirectory-setup.sh | 1 | #!/usr/bin/env bash |
| LOW | .do/gitnexus/docker-compose.yml | 1 | # GitNexus stack for the DigitalOcean droplet. |
| LOW | .do/gitnexus/entrypoint.sh | 1 | #!/bin/sh |
| LOW | packages/api/src/stream/GenerationJobManager.ts | 561 | // Abort the controller to signal all pending operations (e.g., OAuth flow monitors) |
| LOW | …/agents/responses/__tests__/responses-api.live.test.sh | 1 | #!/usr/bin/env bash |
| LOW | packages/api/src/mcp/parsers.ts | 21 | |
| LOW | packages/data-provider/src/artifacts.ts | 3101 | // badge: badge, |
| LOW | .github/playwright.yml | 1 | # name: Playwright Tests |
| LOW | .github/playwright.yml | 21 | # CI: true |
| LOW | .github/playwright.yml | 41 | # with: |
| LOW | .github/playwright.yml | 61 | # npx playwright install chromium |
| LOW | .github/workflows/gitnexus-pr-command.yml | 1 | # Responds to `/gitnexus index` comments on pull requests. |
| LOW | .github/workflows/gitnexus-deploy.yml | 1 | # Deploys GitNexus indexes to a droplet via SSH + rsync. |
| LOW | .github/workflows/gitnexus-deploy.yml | 21 | # curl -fsSL https://get.docker.com | sh |
| LOW | .github/workflows/gitnexus-deploy.yml | 61 | description: 'Optional PR number to post completion comment on (set by bot-triggered dispatches from gitnexus-in |
| LOW | .github/workflows/gitnexus-deploy.yml | 161 | pull-requests: write # post deploy-complete comments on served PR indexes |
| LOW | .github/workflows/gitnexus-deploy.yml | 341 | # secret is populated from `ssh-keyscan -H <host>` at bootstrap. |
| LOW | .github/workflows/gitnexus-deploy.yml | 461 | # ── Disk cleanup ────────────────────────────────────── |
| LOW | api/app/clients/tools/structured/Wolfram.js | 21 | this.override = fields.override ?? false; |
| LOW | api/app/clients/tools/structured/Wolfram.js | 41 | // - Convert inputs to simplified keyword queries whenever possible (e.g. convert "how many people live in France" t |
| LOW | api/app/clients/tools/structured/DALLE3.js | 101 | `// Whenever a description of an image is given, generate prompts (following these rules), and use dalle to create |
| LOW | api/server/controllers/agents/client.js | 981 | // if (noSystemMessages === true && systemContent?.length) { |
| LOW | api/server/services/PluginService.js | 61 | // const encryptedValue = encrypt(value); |
| LOW | api/server/services/Endpoints/agents/initialize.js | 481 | } |
| LOW | api/server/services/__tests__/ToolService.spec.js | 901 | |
| LOW | client/src/utils/files.ts | 81 | // 'application/json':, |
| LOW | …nt/src/components/Auth/__tests__/Registration.spec.tsx | 161 | // const { getByTestId, getByRole, history } = setup({ |
| LOW | …c/components/SidePanel/Agents/ActionsTable/Columns.tsx | 41 | header: 'Path', |
| LOW | …/components/SidePanel/Builder/ActionsTable/Columns.tsx | 41 | header: 'Path', |
| LOW | client/src/hooks/Chat/useChatHelpers.ts | 61 | // const setConversation = useCallback( |
| 13 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | redis-config/stop-cluster.sh | 22 | # Check if still running and force kill if needed |
| LOW | redis-config/start-redis-tls.sh | 6 | # Check if Redis is already running |
| LOW | redis-config/start-cluster.sh | 17 | # Check if Redis is installed |
| LOW | redis-config/start-cluster.sh | 26 | # Check if Redis CLI is available |
| LOW | redis-config/start-cluster.sh | 40 | # Check if all nodes are running |
| LOW | redis-config/start-cluster.sh | 57 | # Check if cluster is already initialized |
| LOW | utils/update_env.py | 58 | # Check if the environment variable is set in the local environment |
| LOW | packages/data-provider/check_updates.sh | 33 | # Check if this date is within the last three days |
| LOW | .github/workflows/i18n-unused-keys.yml | 36 | # Check if translation file exists |
| LOW | .github/workflows/i18n-unused-keys.yml | 48 | # Check if each key is used in the source code |
| LOW | .github/workflows/i18n-unused-keys.yml | 54 | # Check if TSpecialVarLabel is used in the codebase |
| LOW | .github/workflows/i18n-unused-keys.yml | 73 | # Check if agent category localization is being used |
| LOW | .github/workflows/i18n-unused-keys.yml | 111 | # Output results |
| LOW | client/check_updates.sh | 32 | # Check if this date is within the last three days |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | librechat.example.yaml | 455 | # For `apiKey` and `baseURL`, you can use environment variables that you define. |
| MEDIUM | librechat.example.yaml | 497 | # For `apiKey` and `baseURL`, you can use environment variables that you define. |
| MEDIUM | librechat.example.yaml | 514 | # For `apiKey` and `baseURL`, you can use environment variables that you define. |
| MEDIUM | api/server/utils/import/__data__/chatgpt-export.json | 1127 | "To find the point where all intervals intersect, you need to determine the common overlap region among al |
| MEDIUM | client/src/mobile.css | 128 | /* More styling for demonstration purposes */ |
| MEDIUM | helm/librechat-rag-api/values.yaml | 30 | # postgres-password is needed to enable pgvector extension. If you enable it manually you can use "password" and use |
| MEDIUM | helm/librechat/examples/dns-configuration.yaml | 37 | # Note: For simple host-to-IP mappings, you can also use hostAliases |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | librechat.example.yaml | 571 | # # - "enabled_full": Include comprehensive trace details (recommended for debugging) |
| MEDIUM | packages/api/src/tools/toolkits/web.ts | 6 | **Execute immediately without preface.** After search, provide a brief summary addressing the query directly, then struc |
| MEDIUM | …tests__/RedisEventTransport.stream_integration.spec.ts | 901 | // Poll for the fire-and-forget DEL to complete (robust under CI load) |
| MEDIUM | api/server/utils/import/__data__/chatgpt-export.json | 606 | "result": "# \u30100\u20202014 Volkswagen Transporter MPG - Actual MPG from 14 2014 ... - Fuelly\u2020www.fu |
| MEDIUM | api/server/utils/import/__data__/chatgpt-export.json | 783 | "text": "# \u30100\u20202014 Volkswagen Transporter MPG - Actual MPG from 14 2014 ... - Fuelly\u2020ww |
| MEDIUM | api/server/utils/import/__data__/chatgpt-citations.json | 20 | "result": "# 【0†Signal Sciences - Crunchbase Company Profile & Funding†www.crunchbase.com】\nFounded Date Mar |
| MEDIUM | api/server/utils/import/__data__/chatgpt-citations.json | 199 | "text": "# 【0†Signal Sciences - Crunchbase Company Profile & Funding†www.crunchbase.com】\nFounded Date |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | config/test-subdirectory-setup.sh | 10 | # Usage: |
| LOW | …/agents/responses/__tests__/responses-api.live.test.sh | 7 | # Usage: |