/** * Re-exports the public helpers for `kody:@kody/sentry`. * * Use this package root entrypoint instead of reaching into internal source files. */ export { getIssue, getIssueEvents, getLatestIssueEvent, listOrganizations, listProjects, resolveProject, searchIssues, searchIssuesPage, searchIssuesWithLatestSummaries, sentryRequest, summarizeIssueEvent, triageIssue, } from './client.ts' /** Describe the sentry package exports and import pattern. */ export default async function sentryUtilities() { return { package: '@kody/sentry', description: 'Headless Kody utilities for Sentry organizations, projects, issues, and events.', utilities: [ 'list-organizations', 'list-projects', 'resolve-project', 'search-issues', 'get-issue', 'get-latest-issue-event', 'get-issue-events', 'summarize-issue-event', 'triage-issue', 'request', 'smoke-test', ], importPattern: "import utility from 'kody:@kody/sentry/'", paramsNote: 'Kody package entrypoints receive the outer execute params object.', auth: { type: 'auth-token', secret: 'sentryAuthToken', hosts: ['sentry.io', 'us.sentry.io', 'de.sentry.io'], setupUrl: 'https://kody.codes/account/secrets/new?name=sentryAuthToken&description=Sentry%20auth%20token%20for%20organizations%2C%20projects%2C%20issues%2C%20and%20events&allowedHosts=sentry.io,us.sentry.io,de.sentry.io&scope=user', oauthConnectUrl: 'https://kody.codes/connect/oauth?provider=sentry&authorizeUrl=https://sentry.io/oauth/authorize/&tokenUrl=https://sentry.io/oauth/token/&flow=confidential&pkce=true&scopes=org:read%20project:read%20event:read&allowedHosts=sentry.io,us.sentry.io,de.sentry.io&apiBaseUrl=https://sentry.io/api/0/&dashboardUrl=https://sentry.io/settings/account/api/applications/', multiAccount: { secretName: 'Optional extra token secret. Default sentryAuthToken.', integration: 'Optional saved BYO OAuth integration name.', }, }, safety: { mutationsDefaultToDryRun: true, }, consolidatedNotes: { 'search-issues': 'Use paginated: true for cursor pages; includeLatestSummaries: true for event summaries.', 'summarize-issue-event': 'Pass issueId (optionally latest: true) to fetch and summarize the latest event.', request: 'Escape hatch for paths not covered by the OpenAPI scaffold. Mutating methods default to dryRun.', host: 'Optional host overrides the default sentry.io (us.sentry.io, de.sentry.io, or self-hosted).', secretName: 'Optional token secret name for additional accounts. Default sentryAuthToken.', integration: 'Optional OAuth integration name. When set, uses that connection instead of the token secret.', }, } }