← Public packages
@kentcdodds/grok-bot
Wake a named Grok Bot from Kody by posting a prompt to that bot's own Cursor webhook.
src/secret-status.ts
31 lines · 961 B · TypeScriptimport {
buildHostApprovalUrl,
listWakeSecretsForStatus,
WEBHOOK_HOST,
type WakeSecretMeta,
} from './registry.ts'
/**
* Return grokBotWake secret metadata (names, scopes, allowed hosts). Never values.
*
* Call via `import secretStatus from 'kody:@kentcdodds/grok-bot/secret-status'`.
* Uses direct `secretList` / stamp-optimistic package-bucket fallbacks only —
* no subscription dispatch.
*/
export default async function secretStatus(): Promise<{
secrets: WakeSecretMeta[]
needsHostApproval: Array<{ name: string; scope: string; approvalUrl: string }>
}> {
const secrets = (await listWakeSecretsForStatus()) ?? []
const needsHostApproval = secrets
.filter((secret) => !secret.allowed_hosts.includes(WEBHOOK_HOST))
.map((secret) => ({
name: secret.name,
scope: secret.scope,
approvalUrl: buildHostApprovalUrl({
scope: secret.scope || 'user',
secretName: secret.name,
}),
}))
return { secrets, needsHostApproval }
}