Skip to content
← Public packages

@kentcdodds/sentry-triage

Sentry triage wakes Cole (Grok Bot) per issue: one active wake per repo (lease + queue), loop-safe Discord. Cole may spawn Cursor for isolated repo work.

src/settings.d.ts

63 lines · 1.7 KB · TypeScript
export type TriageProjectSetting = {
	slug: string
	slugAliases?: string[]
	projectId: string
	repository: string
	repoSlug: string
	contextNote?: string
	repoFacts?: string
	filterGuidance?: string
	riskGuide?: string
}

export type TriageSettings = {
	discordChannelId: string
	sentryOrgSlug: string
	agentModelId: string
	shipAgentModelId: string
	ownerScope: string
	selfPackageName: string
	sentryPackageName: string
	cursorPackageName: string
	discordPackageName: string
	projects: TriageProjectSetting[]
	maxConcurrentWakesPerRepo: number
	secretNames: {
		sentryWebhookSecret: string
		sentryAuthToken: string
		discordBotToken: string
		grokBotWakeWebhookUrl: string
	}
	listingOwnerCopy: boolean
	sources: Record<string, "package-storage" | "listing-default" | "empty-fork">
}

export type TriageSettingsInput = {
	discordChannelId?: string
	sentryOrgSlug?: string
	agentModelId?: string
	shipAgentModelId?: string
	ownerScope?: string
	selfPackageName?: string
	sentryPackageName?: string
	cursorPackageName?: string
	discordPackageName?: string
	projects?: TriageProjectSetting[]
	maxConcurrentWakesPerRepo?: number
}

/**
 * Read or update owner-specific triage settings in this package storage.
 * Pass any field to persist it (no republish). Kent listing defaults remain
 * the fallback on his copy so production webhooks and jobs do not change.
 *
 * @param input - Optional fields to persist
 * @returns Current settings, or { updated, settings } when writing
 *
 * @example
 * import settings from "kody:@kentcdodds/sentry-triage/settings"
 * const current = await settings()
 */
export default function triageSettings(
	input?: TriageSettingsInput,
): Promise<TriageSettings | { updated: string[]; settings: TriageSettings }>