| LOW | tooling/fonts/generate.ts | 65 | function getComputerModernWebFonts(): WebFont[] { |
| LOW | …erpowers/plans/2026-05-15-unsafe-oauth-redirect-uri.md | 68 | export function isAllowedOAuthRedirectUri( |
| LOW | packages/auth/src/config.ts | 49 | function isCustomOAuthProviderEnabled() { |
| LOW | packages/auth/src/oauth-profile.ts | 84 | async function normalizeExistingUserEmail(userId: string, currentEmail: string, normalizedEmail: string) { |
| LOW | packages/auth/src/oauth-profile.ts | 130 | async function findAvailableUsernameSuffix(baseUsername: string, index = 1): Promise<string | null> { |
| LOW | packages/auth/src/oauth-profile.ts | 214 | export function createGithubProfileMapper() { |
| LOW | packages/utils/src/url-security.node.ts | 136 | function isLoopbackOrLocalHostname(hostname: string) { |
| LOW | packages/utils/src/url-security.node.ts | 170 | function isOAuthLoopbackRedirectHost(hostname: string) { |
| LOW | packages/utils/src/url-security.node.ts | 212 | export function isAllowedOAuthRedirectUri(input: string, trustedOrigins: string[], options?: OAuthRedirectUriOptions) { |
| LOW | packages/ai/src/tools/patch-proposal.ts | 150 | export function buildResumePatchProposalPreview( |
| LOW | packages/ai/src/tools/patch-proposal.ts | 171 | export function normalizeResumePatchProposals( |
| LOW | packages/ai/src/resume/sanitize.ts | 101 | function coerceValueAgainstTemplate( |
| LOW | packages/ai/src/resume/sanitize.ts | 167 | function normalizeResumeDataForSchema(data: Record<string, unknown>, diagnostics: ResumeSanitizationDiagnostics) { |
| LOW | packages/ai/src/resume/sanitize.ts | 226 | export function sanitizeAndParseResumeJson(resultText: string): ResumeSanitizationResult { |
| LOW | packages/ai/src/resume/extraction-template.ts | 110 | export function buildAiExtractionTemplate() { |
| LOW | packages/api/src/context.ts | 65 | export async function resolveUserFromRequestHeaders(headers: Headers): Promise<User | null> { |
| LOW | packages/api/src/features/agent/runs.ts | 26 | export async function clearActiveAgentRunIfCurrent( |
| LOW | packages/api/src/features/agent/service.test.ts | 209 | function selectWhereOrderByLimitResult(rows: unknown[]) { |
| LOW | packages/api/src/features/agent/routing.ts | 4 | export function isAgentEnvironmentUnavailable(error: unknown) { |
| LOW | packages/api/src/features/agent/tools.ts | 33 | function buildProviderNativeAgentTools(provider: AgentProviderConfig): ToolSet { |
| LOW | packages/api/src/features/agent/resume.ts | 5 | export function buildAgentDraftResumeName(sourceName: string) { |
| LOW | packages/api/src/features/agent/resume.ts | 12 | export function buildUniqueAgentDraftSlug(sourceName: string, existingSlugs: Set<string>) { |
| LOW | packages/api/src/features/agent/streams.ts | 31 | export function createAgentStreamLifecycle(options: AgentStreamLifecycleOptions) { |
| LOW | packages/api/src/features/agent/service.ts | 152 | function withoutAgentAttachmentUiParts(message: UIMessage): UIMessage { |
| LOW | packages/api/src/features/agent/service.ts | 194 | function isAnsweredAskUserQuestionPart(part: UIMessage["parts"][number]): part is AnsweredAskUserQuestionPart { |
| LOW | packages/api/src/features/agent/service.ts | 203 | function mergeAskUserQuestionOutputs(existingMessage: UIMessage, incomingMessage: UIMessage): UIMessage { |
| LOW | packages/api/src/features/agent/service.ts | 247 | function getFirstUnansweredAskUserQuestionToolCallId(message: UIMessage) { |
| LOW | packages/api/src/features/agent/service.ts | 260 | function answerAskUserQuestionToolCall(message: UIMessage, toolCallId: string, answer: string) { |
| LOW | packages/api/src/features/agent/service.ts | 279 | export function buildAttachmentModelParts(input: AttachmentModelInput[]): Array<TextPart | ImagePart | FilePart> { |
| LOW | packages/api/src/features/agent/service.ts | 358 | async function getUnlinkedMessageAttachments(input: { ids: unknown; threadId: string; userId: string }) { |
| LOW | packages/api/src/features/agent/service.ts | 420 | async function readAttachmentModelInputs(attachments: AgentAttachmentRecord[]): Promise<AttachmentModelInput[]> { |
| LOW | packages/api/src/features/agent/service.ts | 436 | function attachModelPartsToLatestUserMessage( |
| LOW | packages/api/src/features/agent/service.ts | 553 | async function updateAssistantToolResultMessage(input: { userId: string; threadId: string; message: UIMessage }) { |
| LOW | packages/api/src/features/agent/service.ts | 584 | async function repairLegacyAskUserQuestionAnswers( |
| LOW | packages/api/src/features/ai/router.ts | 22 | function isCredentialEncryptionUnavailable(error: unknown): boolean { |
| LOW | packages/api/src/features/ai/router.ts | 26 | function throwAiProviderGatewayError(): never { |
| LOW | packages/api/src/features/ai/router.ts | 30 | function throwAiProviderConfigError(): never { |
| LOW | packages/api/src/features/ai/router.ts | 34 | function throwCredentialEncryptionUnavailable(): never { |
| LOW | packages/api/src/features/ai/router.ts | 40 | function throwResumeStructureError(error: ZodError): never { |
| LOW | packages/api/src/features/ai/capabilities.ts | 10 | function normalizeDirectOpenAIBaseUrl(baseURL: string) { |
| LOW | packages/api/src/features/ai/capabilities.ts | 88 | export function supportsProviderNativeWebSearch(provider: AiProviderCapabilityInput) { |
| LOW | packages/api/src/features/ai/credentials.ts | 80 | export function redactEncryptedCredential(fields: StoredCredentialFields): RedactedCredentialFields { |
| LOW | packages/api/src/features/ai/credentials.ts | 87 | function isCredentialEncryptionConfigured() { |
| LOW | packages/api/src/features/ai/credentials.ts | 91 | function isAgentStreamingConfigured() { |
| LOW | packages/api/src/features/ai/credentials.ts | 95 | export function isAgentEnvironmentConfigured() { |
| LOW | packages/api/src/features/ai/credentials.ts | 99 | export function assertCredentialEncryptionConfigured() { |
| LOW | packages/api/src/features/ai/service.ts | 47 | function parseAndValidateResumeJson(resultText: string): ResumeData { |
| LOW | packages/api/src/features/ai/service.ts | 144 | function buildResumeParsingMessages({ |
| LOW | packages/api/src/features/ai/service.ts | 247 | function buildAnalyzeResumeSystemPrompt(resumeData: ResumeData): string { |
| LOW | packages/api/src/features/ai-providers/router.ts | 25 | function isAgentEnvironmentUnavailable(error: unknown) { |
| LOW | packages/api/src/features/ai-providers/router.ts | 39 | function throwInvalidProviderConfig(): never { |
| LOW | packages/api/src/features/ai-providers/service.ts | 89 | function orderByLastUsedAtDescNullsLast() { |
| LOW | packages/fonts/src/index.ts | 166 | function getCjkFallbacksByCategory(category: FontCategory | null) { |
| LOW | packages/fonts/src/index.ts | 195 | export function getFallbackWebFontFamilies(family: string) { |
| LOW | packages/fonts/src/index.ts | 211 | export function getPdfCjkFallbackFontFamily(family: string): string | null { |
| LOW | packages/fonts/src/index.ts | 219 | export function getLoadableWebFontWeights(family: string, preferredWeights: string[]) { |
| LOW | packages/import/src/reactive-resume-json.tsx | 7 | function normalizeBuiltInSectionsInLayout(data: ResumeData): ResumeData { |
| LOW | apps/web/src/features/settings/authentication/index.tsx | 8 | export function AuthenticationSettingsPage() { |
| LOW | apps/web/src/features/auth/pages/verify-2fa-backup.tsx | 17 | export function VerifyTwoFactorBackupPage() { |
| LOW | apps/web/src/features/resume/builder/draft.ts | 79 | function createResumeUpdateEventIterator(resumeId: string) { |
| 29 more matches not shown… |