Skip to content
← Public packages

@kody/agent-mail

AgentMail inboxes for agents: create/list inboxes, messages, threads, and Svix webhook ingress.

src/list-webhooks.ts

36 lines · 1.1 KB · TypeScript
import { agentMailRequest, clean } from './core.ts'

export type ListWebhooksInput = {
	limit?: number
	pageToken?: string
}

/**
 * List AgentMail organization webhooks.
 * Read-only; uses GET /v0/webhooks.
 *
 * @param input.limit - Max items to return
 * @param input.pageToken - Pagination cursor
 * @returns Webhook list payload from AgentMail
 *
 * @example
 * import listWebhooks from 'kody:@kody/agent-mail/list-webhooks'
 * const { webhooks } = await listWebhooks()
 */
export default async function listWebhooks(input: ListWebhooksInput = {}) {
	const query: Record<string, unknown> = {}
	if (input.limit !== undefined && input.limit !== null) query.limit = Number(input.limit)
	if (clean(input.pageToken)) query.page_token = clean(input.pageToken)

	const result = (await agentMailRequest({
		path: '/v0/webhooks',
		query,
		label: 'AgentMail list webhooks',
	})) as { webhooks?: unknown[]; count?: number; next_page_token?: string }

	return {
		count: result.count ?? (Array.isArray(result.webhooks) ? result.webhooks.length : 0),
		webhooks: Array.isArray(result.webhooks) ? result.webhooks : [],
		nextPageToken: result.next_page_token ?? null,
	}
}