{"version":3,"file":"src-Bx5p1Unc.mjs","names":[],"sources":["../src/tools/repository.ts","../src/tools/pull-requests.ts","../src/tools/issues.ts","../src/tools/reactions.ts","../src/tools/discussions.ts","../src/tools/notifications.ts","../src/tools/search.ts","../src/tools/commits.ts","../src/tools/gists.ts","../src/tools/workflows.ts","../src/tools/checks.ts","../src/tools/releases.ts","../src/tools/bundles.ts","../src/core/approval.ts","../src/agents.ts","../src/index.ts"],"sourcesContent":["import { tool } from 'ai'\nimport {\n  getRepositoryInputSchema,\n  getRepositoryDescription,\n  getRepositoryCore,\n  listBranchesInputSchema,\n  listBranchesDescription,\n  listBranchesCore,\n  getFileContentInputSchema,\n  getFileContentDescription,\n  getFileContentCore,\n  getRepositoryTreeInputSchema,\n  getRepositoryTreeDescription,\n  getRepositoryTreeCore,\n  createBranchInputSchema,\n  createBranchDescription,\n  createBranchCore,\n  deleteBranchInputSchema,\n  deleteBranchDescription,\n  deleteBranchCore,\n  forkRepositoryInputSchema,\n  forkRepositoryDescription,\n  forkRepositoryCore,\n  createRepositoryInputSchema,\n  createRepositoryDescription,\n  createRepositoryCore,\n  createOrUpdateFileInputSchema,\n  createOrUpdateFileDescription,\n  createOrUpdateFileCore,\n  composeCommitMessage,\n} from '../core/repository'\nimport { getFileContentToModelOutput, getRepositoryTreeToModelOutput } from '../core/model-output'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { CommitToolOptions, ToolOptions, GithubTool } from '../types'\n\nexport { composeCommitMessage }\n\nasync function getRepositoryStep(args: Parameters<typeof getRepositoryCore>[0]) {\n  \"use step\"\n  return getRepositoryCore(args)\n}\n\n/** Get information about a GitHub repository including description, stars, forks, language, and default branch. */\nexport const getRepository = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getRepositoryDescription,\n    inputSchema: getRepositoryInputSchema,\n    execute: async args => getRepositoryStep({ token: await resolveGithubToken(token, githubTokenCall('getRepository', args)), ...args }),\n  })\n\nasync function listBranchesStep(args: Parameters<typeof listBranchesCore>[0]) {\n  \"use step\"\n  return listBranchesCore(args)\n}\n\n/** List branches in a GitHub repository. */\nexport const listBranches = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listBranchesDescription,\n    inputSchema: listBranchesInputSchema,\n    execute: async args => listBranchesStep({ token: await resolveGithubToken(token, githubTokenCall('listBranches', args)), ...args }),\n  })\n\nasync function getFileContentStep(args: Parameters<typeof getFileContentCore>[0]) {\n  \"use step\"\n  return getFileContentCore(args)\n}\n\n/** Get the content of a file from a GitHub repository. */\nexport const getFileContent = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getFileContentDescription,\n    inputSchema: getFileContentInputSchema,\n    toModelOutput: getFileContentToModelOutput,\n    execute: async args => getFileContentStep({ token: await resolveGithubToken(token, githubTokenCall('getFileContent', args)), ...args }),\n  })\n\nasync function getRepositoryTreeStep(args: Parameters<typeof getRepositoryTreeCore>[0]) {\n  \"use step\"\n  return getRepositoryTreeCore(args)\n}\n\n/** List the file and directory structure of a repository at a given ref. */\nexport const getRepositoryTree = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getRepositoryTreeDescription,\n    inputSchema: getRepositoryTreeInputSchema,\n    toModelOutput: getRepositoryTreeToModelOutput,\n    execute: async args => getRepositoryTreeStep({ token: await resolveGithubToken(token, githubTokenCall('getRepositoryTree', args)), ...args }),\n  })\n\nasync function createBranchStep(args: Parameters<typeof createBranchCore>[0]) {\n  \"use step\"\n  return createBranchCore(args)\n}\n\n/** Create a new branch in a GitHub repository from an existing branch or commit SHA. Requires approval by default. */\nexport const createBranch = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: createBranchDescription,\n    needsApproval,\n    inputSchema: createBranchInputSchema,\n    execute: async args => createBranchStep({ token: await resolveGithubToken(token, githubTokenCall('createBranch', args)), ...args }),\n  })\n\nasync function deleteBranchStep(args: Parameters<typeof deleteBranchCore>[0]) {\n  \"use step\"\n  return deleteBranchCore(args)\n}\n\n/** Delete a branch from a GitHub repository permanently. Requires approval by default. */\nexport const deleteBranch = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: deleteBranchDescription,\n    needsApproval,\n    inputSchema: deleteBranchInputSchema,\n    execute: async args => deleteBranchStep({ token: await resolveGithubToken(token, githubTokenCall('deleteBranch', args)), ...args }),\n  })\n\nasync function forkRepositoryStep(args: Parameters<typeof forkRepositoryCore>[0]) {\n  \"use step\"\n  return forkRepositoryCore(args)\n}\n\n/** Fork a GitHub repository to the authenticated user account or a specified organization. Requires approval by default. */\nexport const forkRepository = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: forkRepositoryDescription,\n    needsApproval,\n    inputSchema: forkRepositoryInputSchema,\n    execute: async args => forkRepositoryStep({ token: await resolveGithubToken(token, githubTokenCall('forkRepository', args)), ...args }),\n  })\n\nasync function createRepositoryStep(args: Parameters<typeof createRepositoryCore>[0]) {\n  \"use step\"\n  return createRepositoryCore(args)\n}\n\n/** Create a new GitHub repository for the authenticated user or a specified organization. Requires approval by default. */\nexport const createRepository = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: createRepositoryDescription,\n    needsApproval,\n    inputSchema: createRepositoryInputSchema,\n    execute: async args => createRepositoryStep({ token: await resolveGithubToken(token, githubTokenCall('createRepository', args)), ...args }),\n  })\n\nasync function createOrUpdateFileStep(args: Parameters<typeof createOrUpdateFileCore>[0]) {\n  \"use step\"\n  return createOrUpdateFileCore(args)\n}\n\n/** Create or update a file in a GitHub repository. Provide the SHA when updating an existing file. Requires approval by default. */\nexport const createOrUpdateFile = (\n  token: GithubTokenInput,\n  { needsApproval = true, author, committer, coAuthors }: CommitToolOptions = {},\n): GithubTool =>\n  tool({\n    description: createOrUpdateFileDescription,\n    needsApproval,\n    inputSchema: createOrUpdateFileInputSchema,\n    execute: async args => createOrUpdateFileStep({ token: await resolveGithubToken(token, githubTokenCall('createOrUpdateFile', args)), author, committer, coAuthors, ...args }),\n  })\n","import { tool } from 'ai'\nimport {\n  listPullRequestsInputSchema,\n  listPullRequestsDescription,\n  listPullRequestsCore,\n  getPullRequestInputSchema,\n  getPullRequestDescription,\n  getPullRequestCore,\n  createPullRequestInputSchema,\n  createPullRequestDescription,\n  createPullRequestCore,\n  mergePullRequestInputSchema,\n  mergePullRequestDescription,\n  mergePullRequestCore,\n  updatePullRequestInputSchema,\n  updatePullRequestDescription,\n  updatePullRequestCore,\n  addPullRequestCommentInputSchema,\n  addPullRequestCommentDescription,\n  addPullRequestCommentCore,\n  updatePullRequestCommentInputSchema,\n  updatePullRequestCommentDescription,\n  updatePullRequestCommentCore,\n  deletePullRequestCommentInputSchema,\n  deletePullRequestCommentDescription,\n  deletePullRequestCommentCore,\n  listPullRequestFilesInputSchema,\n  listPullRequestFilesDescription,\n  listPullRequestFilesCore,\n  listPullRequestReviewsInputSchema,\n  listPullRequestReviewsDescription,\n  listPullRequestReviewsCore,\n  createPullRequestReviewInputSchema,\n  createPullRequestReviewDescription,\n  createPullRequestReviewCore,\n  listPullRequestReviewThreadsInputSchema,\n  listPullRequestReviewThreadsDescription,\n  listPullRequestReviewThreadsCore,\n  replyToReviewCommentInputSchema,\n  replyToReviewCommentDescription,\n  replyToReviewCommentCore,\n  resolveReviewThreadInputSchema,\n  resolveReviewThreadDescription,\n  resolveReviewThreadCore,\n  requestReviewersInputSchema,\n  requestReviewersDescription,\n  requestReviewersCore,\n} from '../core/pull-requests'\nimport { listPullRequestFilesToModelOutput } from '../core/model-output'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { CommitIdentity, ToolOptions, GithubTool } from '../types'\n\nexport type MergeToolOptions = ToolOptions & {\n  coAuthors?: CommitIdentity[]\n}\n\nasync function listPullRequestsStep(args: Parameters<typeof listPullRequestsCore>[0]) {\n  \"use step\"\n  return listPullRequestsCore(args)\n}\n\n/** List pull requests for a GitHub repository. */\nexport const listPullRequests = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listPullRequestsDescription,\n    inputSchema: listPullRequestsInputSchema,\n    execute: async args => listPullRequestsStep({ token: await resolveGithubToken(token, githubTokenCall('listPullRequests', args)), ...args }),\n  })\n\nasync function getPullRequestStep(args: Parameters<typeof getPullRequestCore>[0]) {\n  \"use step\"\n  return getPullRequestCore(args)\n}\n\n/** Get detailed information about a specific pull request. */\nexport const getPullRequest = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getPullRequestDescription,\n    inputSchema: getPullRequestInputSchema,\n    execute: async args => getPullRequestStep({ token: await resolveGithubToken(token, githubTokenCall('getPullRequest', args)), ...args }),\n  })\n\nasync function createPullRequestStep(args: Parameters<typeof createPullRequestCore>[0]) {\n  \"use step\"\n  return createPullRequestCore(args)\n}\n\n/** Create a new pull request in a GitHub repository. Requires approval by default. */\nexport const createPullRequest = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: createPullRequestDescription,\n    needsApproval,\n    inputSchema: createPullRequestInputSchema,\n    execute: async args => createPullRequestStep({ token: await resolveGithubToken(token, githubTokenCall('createPullRequest', args)), ...args }),\n  })\n\nasync function mergePullRequestStep(args: Parameters<typeof mergePullRequestCore>[0]) {\n  \"use step\"\n  return mergePullRequestCore(args)\n}\n\n/** Merge a pull request. Requires approval by default. */\nexport const mergePullRequest = (token: GithubTokenInput, { needsApproval = true, coAuthors }: MergeToolOptions = {}): GithubTool =>\n  tool({\n    description: mergePullRequestDescription,\n    needsApproval,\n    inputSchema: mergePullRequestInputSchema,\n    execute: async args => mergePullRequestStep({ token: await resolveGithubToken(token, githubTokenCall('mergePullRequest', args)), coAuthors, ...args }),\n  })\n\nasync function updatePullRequestStep(args: Parameters<typeof updatePullRequestCore>[0]) {\n  \"use step\"\n  return updatePullRequestCore(args)\n}\n\n/** Update a pull request — title, body, state, base branch, or draft status. Requires approval by default. */\nexport const updatePullRequest = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: updatePullRequestDescription,\n    needsApproval,\n    inputSchema: updatePullRequestInputSchema,\n    execute: async args => updatePullRequestStep({ token: await resolveGithubToken(token, githubTokenCall('updatePullRequest', args)), ...args }),\n  })\n\nasync function addPullRequestCommentStep(args: Parameters<typeof addPullRequestCommentCore>[0]) {\n  \"use step\"\n  return addPullRequestCommentCore(args)\n}\n\n/** Add a comment to a pull request. Requires approval by default. */\nexport const addPullRequestComment = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: addPullRequestCommentDescription,\n    needsApproval,\n    inputSchema: addPullRequestCommentInputSchema,\n    execute: async args => addPullRequestCommentStep({ token: await resolveGithubToken(token, githubTokenCall('addPullRequestComment', args)), ...args }),\n  })\n\nasync function updatePullRequestCommentStep(args: Parameters<typeof updatePullRequestCommentCore>[0]) {\n  \"use step\"\n  return updatePullRequestCommentCore(args)\n}\n\n/** Update the body of a comment on a pull request. Requires approval by default. */\nexport const updatePullRequestComment = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: updatePullRequestCommentDescription,\n    needsApproval,\n    inputSchema: updatePullRequestCommentInputSchema,\n    execute: async args => updatePullRequestCommentStep({ token: await resolveGithubToken(token, githubTokenCall('updatePullRequestComment', args)), ...args }),\n  })\n\nasync function deletePullRequestCommentStep(args: Parameters<typeof deletePullRequestCommentCore>[0]) {\n  \"use step\"\n  return deletePullRequestCommentCore(args)\n}\n\n/** Delete a comment from a pull request permanently. Requires approval by default. */\nexport const deletePullRequestComment = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: deletePullRequestCommentDescription,\n    needsApproval,\n    inputSchema: deletePullRequestCommentInputSchema,\n    execute: async args => deletePullRequestCommentStep({ token: await resolveGithubToken(token, githubTokenCall('deletePullRequestComment', args)), ...args }),\n  })\n\nasync function listPullRequestFilesStep(args: Parameters<typeof listPullRequestFilesCore>[0]) {\n  \"use step\"\n  return listPullRequestFilesCore(args)\n}\n\n/** List files changed in a pull request with status and stats. Patches omitted by default. */\nexport const listPullRequestFiles = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listPullRequestFilesDescription,\n    inputSchema: listPullRequestFilesInputSchema,\n    toModelOutput: listPullRequestFilesToModelOutput,\n    execute: async args => listPullRequestFilesStep({ token: await resolveGithubToken(token, githubTokenCall('listPullRequestFiles', args)), ...args }),\n  })\n\nasync function listPullRequestReviewsStep(args: Parameters<typeof listPullRequestReviewsCore>[0]) {\n  \"use step\"\n  return listPullRequestReviewsCore(args)\n}\n\n/** List reviews on a pull request (approvals, change requests, and comments). */\nexport const listPullRequestReviews = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listPullRequestReviewsDescription,\n    inputSchema: listPullRequestReviewsInputSchema,\n    execute: async args => listPullRequestReviewsStep({ token: await resolveGithubToken(token, githubTokenCall('listPullRequestReviews', args)), ...args }),\n  })\n\nasync function createPullRequestReviewStep(args: Parameters<typeof createPullRequestReviewCore>[0]) {\n  \"use step\"\n  return createPullRequestReviewCore(args)\n}\n\n/** Submit a pull request review with optional inline comments. Requires approval by default. */\nexport const createPullRequestReview = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: createPullRequestReviewDescription,\n    needsApproval,\n    inputSchema: createPullRequestReviewInputSchema,\n    execute: async args => createPullRequestReviewStep({ token: await resolveGithubToken(token, githubTokenCall('createPullRequestReview', args)), ...args }),\n  })\n\nasync function listPullRequestReviewThreadsStep(args: Parameters<typeof listPullRequestReviewThreadsCore>[0]) {\n  \"use step\"\n  return listPullRequestReviewThreadsCore(args)\n}\n\n/** List review threads on a pull request with comments, resolution state, and reply/resolve IDs. */\nexport const listPullRequestReviewThreads = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listPullRequestReviewThreadsDescription,\n    inputSchema: listPullRequestReviewThreadsInputSchema,\n    execute: async args => listPullRequestReviewThreadsStep({ token: await resolveGithubToken(token, githubTokenCall('listPullRequestReviewThreads', args)), ...args }),\n  })\n\nasync function replyToReviewCommentStep(args: Parameters<typeof replyToReviewCommentCore>[0]) {\n  \"use step\"\n  return replyToReviewCommentCore(args)\n}\n\n/** Reply to a pull request review comment in its review thread. Requires approval by default. */\nexport const replyToReviewComment = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: replyToReviewCommentDescription,\n    needsApproval,\n    inputSchema: replyToReviewCommentInputSchema,\n    execute: async args => replyToReviewCommentStep({ token: await resolveGithubToken(token, githubTokenCall('replyToReviewComment', args)), ...args }),\n  })\n\nasync function resolveReviewThreadStep(args: Parameters<typeof resolveReviewThreadCore>[0]) {\n  \"use step\"\n  return resolveReviewThreadCore(args)\n}\n\n/** Mark a pull request review thread as resolved. Requires approval by default. */\nexport const resolveReviewThread = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: resolveReviewThreadDescription,\n    needsApproval,\n    inputSchema: resolveReviewThreadInputSchema,\n    execute: async args => resolveReviewThreadStep({ token: await resolveGithubToken(token, githubTokenCall('resolveReviewThread', args)), ...args }),\n  })\n\nasync function requestReviewersStep(args: Parameters<typeof requestReviewersCore>[0]) {\n  \"use step\"\n  return requestReviewersCore(args)\n}\n\n/** Request reviews from users or teams on a pull request. Requires approval by default. */\nexport const requestReviewers = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: requestReviewersDescription,\n    needsApproval,\n    inputSchema: requestReviewersInputSchema,\n    execute: async args => requestReviewersStep({ token: await resolveGithubToken(token, githubTokenCall('requestReviewers', args)), ...args }),\n  })\n","import { tool } from 'ai'\nimport {\n  listIssuesInputSchema,\n  listIssuesDescription,\n  listIssuesCore,\n  getIssueInputSchema,\n  getIssueDescription,\n  getIssueCore,\n  listIssueCommentsInputSchema,\n  listIssueCommentsDescription,\n  listIssueCommentsCore,\n  createIssueInputSchema,\n  createIssueDescription,\n  createIssueCore,\n  addIssueCommentInputSchema,\n  addIssueCommentDescription,\n  addIssueCommentCore,\n  closeIssueInputSchema,\n  closeIssueDescription,\n  closeIssueCore,\n  updateIssueInputSchema,\n  updateIssueDescription,\n  updateIssueCore,\n  updateIssueCommentInputSchema,\n  updateIssueCommentDescription,\n  updateIssueCommentCore,\n  deleteIssueCommentInputSchema,\n  deleteIssueCommentDescription,\n  deleteIssueCommentCore,\n  listLabelsInputSchema,\n  listLabelsDescription,\n  listLabelsCore,\n  addLabelsInputSchema,\n  addLabelsDescription,\n  addLabelsCore,\n  removeLabelInputSchema,\n  removeLabelDescription,\n  removeLabelCore,\n  createLabelInputSchema,\n  createLabelDescription,\n  createLabelCore,\n  updateLabelInputSchema,\n  updateLabelDescription,\n  updateLabelCore,\n  deleteLabelInputSchema,\n  deleteLabelDescription,\n  deleteLabelCore,\n  addAssigneesInputSchema,\n  addAssigneesDescription,\n  addAssigneesCore,\n  removeAssigneesInputSchema,\n  removeAssigneesDescription,\n  removeAssigneesCore,\n} from '../core/issues'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { ToolOptions, GithubTool } from '../types'\n\nasync function listIssuesStep(args: Parameters<typeof listIssuesCore>[0]) {\n  \"use step\"\n  return listIssuesCore(args)\n}\n\n/** List issues for a GitHub repository (excludes pull requests). */\nexport const listIssues = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listIssuesDescription,\n    inputSchema: listIssuesInputSchema,\n    execute: async args => listIssuesStep({ token: await resolveGithubToken(token, githubTokenCall('listIssues', args)), ...args }),\n  })\n\nasync function getIssueStep(args: Parameters<typeof getIssueCore>[0]) {\n  \"use step\"\n  return getIssueCore(args)\n}\n\n/** Get detailed information about a specific issue. */\nexport const getIssue = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getIssueDescription,\n    inputSchema: getIssueInputSchema,\n    execute: async args => getIssueStep({ token: await resolveGithubToken(token, githubTokenCall('getIssue', args)), ...args }),\n  })\n\nasync function listIssueCommentsStep(args: Parameters<typeof listIssueCommentsCore>[0]) {\n  \"use step\"\n  return listIssueCommentsCore(args)\n}\n\n/** List comments on a GitHub issue. Prefer getIssueContext for the first page when triaging. */\nexport const listIssueComments = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listIssueCommentsDescription,\n    inputSchema: listIssueCommentsInputSchema,\n    execute: async args => listIssueCommentsStep({ token: await resolveGithubToken(token, githubTokenCall('listIssueComments', args)), ...args }),\n  })\n\nasync function createIssueStep(args: Parameters<typeof createIssueCore>[0]) {\n  \"use step\"\n  return createIssueCore(args)\n}\n\n/** Create a new issue in a GitHub repository. Requires approval by default. */\nexport const createIssue = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: createIssueDescription,\n    needsApproval,\n    inputSchema: createIssueInputSchema,\n    execute: async args => createIssueStep({ token: await resolveGithubToken(token, githubTokenCall('createIssue', args)), ...args }),\n  })\n\nasync function addIssueCommentStep(args: Parameters<typeof addIssueCommentCore>[0]) {\n  \"use step\"\n  return addIssueCommentCore(args)\n}\n\n/** Add a comment to a GitHub issue. Requires approval by default. */\nexport const addIssueComment = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: addIssueCommentDescription,\n    needsApproval,\n    inputSchema: addIssueCommentInputSchema,\n    execute: async args => addIssueCommentStep({ token: await resolveGithubToken(token, githubTokenCall('addIssueComment', args)), ...args }),\n  })\n\nasync function closeIssueStep(args: Parameters<typeof closeIssueCore>[0]) {\n  \"use step\"\n  return closeIssueCore(args)\n}\n\n/** Close an open GitHub issue. Requires approval by default. */\nexport const closeIssue = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: closeIssueDescription,\n    needsApproval,\n    inputSchema: closeIssueInputSchema,\n    execute: async args => closeIssueStep({ token: await resolveGithubToken(token, githubTokenCall('closeIssue', args)), ...args }),\n  })\n\nasync function updateIssueStep(args: Parameters<typeof updateIssueCore>[0]) {\n  \"use step\"\n  return updateIssueCore(args)\n}\n\n/** Update a GitHub issue — title, body, state, labels, milestone, or assignees. Requires approval by default. */\nexport const updateIssue = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: updateIssueDescription,\n    needsApproval,\n    inputSchema: updateIssueInputSchema,\n    execute: async args => updateIssueStep({ token: await resolveGithubToken(token, githubTokenCall('updateIssue', args)), ...args }),\n  })\n\nasync function updateIssueCommentStep(args: Parameters<typeof updateIssueCommentCore>[0]) {\n  \"use step\"\n  return updateIssueCommentCore(args)\n}\n\n/** Update the body of a comment on a GitHub issue. Requires approval by default. */\nexport const updateIssueComment = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: updateIssueCommentDescription,\n    needsApproval,\n    inputSchema: updateIssueCommentInputSchema,\n    execute: async args => updateIssueCommentStep({ token: await resolveGithubToken(token, githubTokenCall('updateIssueComment', args)), ...args }),\n  })\n\nasync function deleteIssueCommentStep(args: Parameters<typeof deleteIssueCommentCore>[0]) {\n  \"use step\"\n  return deleteIssueCommentCore(args)\n}\n\n/** Delete a comment from a GitHub issue permanently. Requires approval by default. */\nexport const deleteIssueComment = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: deleteIssueCommentDescription,\n    needsApproval,\n    inputSchema: deleteIssueCommentInputSchema,\n    execute: async args => deleteIssueCommentStep({ token: await resolveGithubToken(token, githubTokenCall('deleteIssueComment', args)), ...args }),\n  })\n\nasync function listLabelsStep(args: Parameters<typeof listLabelsCore>[0]) {\n  \"use step\"\n  return listLabelsCore(args)\n}\n\n/** List labels available in a GitHub repository. */\nexport const listLabels = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listLabelsDescription,\n    inputSchema: listLabelsInputSchema,\n    execute: async args => listLabelsStep({ token: await resolveGithubToken(token, githubTokenCall('listLabels', args)), ...args }),\n  })\n\nasync function addLabelsStep(args: Parameters<typeof addLabelsCore>[0]) {\n  \"use step\"\n  return addLabelsCore(args)\n}\n\n/** Add labels to an issue or pull request. Requires approval by default. */\nexport const addLabels = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: addLabelsDescription,\n    needsApproval,\n    inputSchema: addLabelsInputSchema,\n    execute: async args => addLabelsStep({ token: await resolveGithubToken(token, githubTokenCall('addLabels', args)), ...args }),\n  })\n\nasync function removeLabelStep(args: Parameters<typeof removeLabelCore>[0]) {\n  \"use step\"\n  return removeLabelCore(args)\n}\n\n/** Remove a label from an issue or pull request. Requires approval by default. */\nexport const removeLabel = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: removeLabelDescription,\n    needsApproval,\n    inputSchema: removeLabelInputSchema,\n    execute: async args => removeLabelStep({ token: await resolveGithubToken(token, githubTokenCall('removeLabel', args)), ...args }),\n  })\n\nasync function createLabelStep(args: Parameters<typeof createLabelCore>[0]) {\n  \"use step\"\n  return createLabelCore(args)\n}\n\n/** Create a label in a GitHub repository. Requires approval by default. */\nexport const createLabel = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: createLabelDescription,\n    needsApproval,\n    inputSchema: createLabelInputSchema,\n    execute: async args => createLabelStep({ token: await resolveGithubToken(token, githubTokenCall('createLabel', args)), ...args }),\n  })\n\nasync function updateLabelStep(args: Parameters<typeof updateLabelCore>[0]) {\n  \"use step\"\n  return updateLabelCore(args)\n}\n\n/** Update a label in a GitHub repository. Requires approval by default. */\nexport const updateLabel = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: updateLabelDescription,\n    needsApproval,\n    inputSchema: updateLabelInputSchema,\n    execute: async args => updateLabelStep({ token: await resolveGithubToken(token, githubTokenCall('updateLabel', args)), ...args }),\n  })\n\nasync function deleteLabelStep(args: Parameters<typeof deleteLabelCore>[0]) {\n  \"use step\"\n  return deleteLabelCore(args)\n}\n\n/** Delete a label from a GitHub repository permanently. Requires approval by default. */\nexport const deleteLabel = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: deleteLabelDescription,\n    needsApproval,\n    inputSchema: deleteLabelInputSchema,\n    execute: async args => deleteLabelStep({ token: await resolveGithubToken(token, githubTokenCall('deleteLabel', args)), ...args }),\n  })\n\nasync function addAssigneesStep(args: Parameters<typeof addAssigneesCore>[0]) {\n  \"use step\"\n  return addAssigneesCore(args)\n}\n\n/** Assign users to an issue or pull request. Requires approval by default. */\nexport const addAssignees = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: addAssigneesDescription,\n    needsApproval,\n    inputSchema: addAssigneesInputSchema,\n    execute: async args => addAssigneesStep({ token: await resolveGithubToken(token, githubTokenCall('addAssignees', args)), ...args }),\n  })\n\nasync function removeAssigneesStep(args: Parameters<typeof removeAssigneesCore>[0]) {\n  \"use step\"\n  return removeAssigneesCore(args)\n}\n\n/** Remove assignees from an issue or pull request. Requires approval by default. */\nexport const removeAssignees = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: removeAssigneesDescription,\n    needsApproval,\n    inputSchema: removeAssigneesInputSchema,\n    execute: async args => removeAssigneesStep({ token: await resolveGithubToken(token, githubTokenCall('removeAssignees', args)), ...args }),\n  })\n","import { tool } from 'ai'\nimport {\n  listIssueReactionsInputSchema,\n  listIssueReactionsDescription,\n  listIssueReactionsCore,\n  addIssueReactionInputSchema,\n  addIssueReactionDescription,\n  addIssueReactionCore,\n  listCommentReactionsInputSchema,\n  listCommentReactionsDescription,\n  listCommentReactionsCore,\n  addCommentReactionInputSchema,\n  addCommentReactionDescription,\n  addCommentReactionCore,\n} from '../core/reactions'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { ToolOptions, GithubTool } from '../types'\n\nasync function listIssueReactionsStep(args: Parameters<typeof listIssueReactionsCore>[0]) {\n  \"use step\"\n  return listIssueReactionsCore(args)\n}\n\n/** List reactions on an issue or pull request conversation. */\nexport const listIssueReactions = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listIssueReactionsDescription,\n    inputSchema: listIssueReactionsInputSchema,\n    execute: async args => listIssueReactionsStep({ token: await resolveGithubToken(token, githubTokenCall('listIssueReactions', args)), ...args }),\n  })\n\nasync function addIssueReactionStep(args: Parameters<typeof addIssueReactionCore>[0]) {\n  \"use step\"\n  return addIssueReactionCore(args)\n}\n\n/** React to an issue or pull request with an emoji. Requires approval by default. */\nexport const addIssueReaction = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: addIssueReactionDescription,\n    needsApproval,\n    inputSchema: addIssueReactionInputSchema,\n    execute: async args => addIssueReactionStep({ token: await resolveGithubToken(token, githubTokenCall('addIssueReaction', args)), ...args }),\n  })\n\nasync function listCommentReactionsStep(args: Parameters<typeof listCommentReactionsCore>[0]) {\n  \"use step\"\n  return listCommentReactionsCore(args)\n}\n\n/** List reactions on an issue or pull request comment. */\nexport const listCommentReactions = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listCommentReactionsDescription,\n    inputSchema: listCommentReactionsInputSchema,\n    execute: async args => listCommentReactionsStep({ token: await resolveGithubToken(token, githubTokenCall('listCommentReactions', args)), ...args }),\n  })\n\nasync function addCommentReactionStep(args: Parameters<typeof addCommentReactionCore>[0]) {\n  \"use step\"\n  return addCommentReactionCore(args)\n}\n\n/** React to an issue or pull request comment with an emoji. Requires approval by default. */\nexport const addCommentReaction = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: addCommentReactionDescription,\n    needsApproval,\n    inputSchema: addCommentReactionInputSchema,\n    execute: async args => addCommentReactionStep({ token: await resolveGithubToken(token, githubTokenCall('addCommentReaction', args)), ...args }),\n  })\n","import { tool } from 'ai'\nimport {\n  listDiscussionsInputSchema,\n  listDiscussionsDescription,\n  listDiscussionsCore,\n  getDiscussionInputSchema,\n  getDiscussionDescription,\n  getDiscussionCore,\n  addDiscussionCommentInputSchema,\n  addDiscussionCommentDescription,\n  addDiscussionCommentCore,\n} from '../core/discussions'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { ToolOptions, GithubTool } from '../types'\n\nasync function listDiscussionsStep(args: Parameters<typeof listDiscussionsCore>[0]) {\n  \"use step\"\n  return listDiscussionsCore(args)\n}\n\n/** List discussions in a repository, optionally filtered by category. */\nexport const listDiscussions = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listDiscussionsDescription,\n    inputSchema: listDiscussionsInputSchema,\n    execute: async args => listDiscussionsStep({ token: await resolveGithubToken(token, githubTokenCall('listDiscussions', args)), ...args }),\n  })\n\nasync function getDiscussionStep(args: Parameters<typeof getDiscussionCore>[0]) {\n  \"use step\"\n  return getDiscussionCore(args)\n}\n\n/** Get a discussion by number. */\nexport const getDiscussion = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getDiscussionDescription,\n    inputSchema: getDiscussionInputSchema,\n    execute: async args => getDiscussionStep({ token: await resolveGithubToken(token, githubTokenCall('getDiscussion', args)), ...args }),\n  })\n\nasync function addDiscussionCommentStep(args: Parameters<typeof addDiscussionCommentCore>[0]) {\n  \"use step\"\n  return addDiscussionCommentCore(args)\n}\n\n/** Add a comment to a discussion. Requires approval by default. */\nexport const addDiscussionComment = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: addDiscussionCommentDescription,\n    needsApproval,\n    inputSchema: addDiscussionCommentInputSchema,\n    execute: async args => addDiscussionCommentStep({ token: await resolveGithubToken(token, githubTokenCall('addDiscussionComment', args)), ...args }),\n  })\n","import { tool } from 'ai'\nimport {\n  listNotificationsInputSchema,\n  listNotificationsDescription,\n  listNotificationsCore,\n  markNotificationReadInputSchema,\n  markNotificationReadDescription,\n  markNotificationReadCore,\n} from '../core/notifications'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { ToolOptions, GithubTool } from '../types'\n\nasync function listNotificationsStep(args: Parameters<typeof listNotificationsCore>[0]) {\n  \"use step\"\n  return listNotificationsCore(args)\n}\n\n/** List notification threads for the authenticated user. */\nexport const listNotifications = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listNotificationsDescription,\n    inputSchema: listNotificationsInputSchema,\n    execute: async args => listNotificationsStep({ token: await resolveGithubToken(token, githubTokenCall('listNotifications', args)), ...args }),\n  })\n\nasync function markNotificationReadStep(args: Parameters<typeof markNotificationReadCore>[0]) {\n  \"use step\"\n  return markNotificationReadCore(args)\n}\n\n/** Mark a notification thread as read. Requires approval by default. */\nexport const markNotificationRead = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: markNotificationReadDescription,\n    needsApproval,\n    inputSchema: markNotificationReadInputSchema,\n    execute: async args => markNotificationReadStep({ token: await resolveGithubToken(token, githubTokenCall('markNotificationRead', args)), ...args }),\n  })\n","import { tool } from 'ai'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { GithubTool } from '../types'\nimport {\n  searchCodeInputSchema,\n  searchCodeDescription,\n  searchCodeCore,\n  searchRepositoriesInputSchema,\n  searchRepositoriesDescription,\n  searchRepositoriesCore,\n  searchIssuesInputSchema,\n  searchIssuesDescription,\n  searchIssuesCore,\n} from '../core/search'\n\nasync function searchCodeStep(args: Parameters<typeof searchCodeCore>[0]) {\n  \"use step\"\n  return searchCodeCore(args)\n}\n\n/** Search for code in GitHub repositories. Use qualifiers like \"repo:owner/name\" to scope the search. Results include matching text snippets when GitHub returns them. */\nexport const searchCode = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: searchCodeDescription,\n    inputSchema: searchCodeInputSchema,\n    execute: async args => searchCodeStep({ token: await resolveGithubToken(token, githubTokenCall('searchCode', args)), ...args }),\n  })\n\nasync function searchRepositoriesStep(args: Parameters<typeof searchRepositoriesCore>[0]) {\n  \"use step\"\n  return searchRepositoriesCore(args)\n}\n\n/** Search for GitHub repositories by keyword, topic, language, or other qualifiers. */\nexport const searchRepositories = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: searchRepositoriesDescription,\n    inputSchema: searchRepositoriesInputSchema,\n    execute: async args => searchRepositoriesStep({ token: await resolveGithubToken(token, githubTokenCall('searchRepositories', args)), ...args }),\n  })\n\nasync function searchIssuesStep(args: Parameters<typeof searchIssuesCore>[0]) {\n  \"use step\"\n  return searchIssuesCore(args)\n}\n\n/** Search for issues and pull requests across GitHub using search qualifiers like \"repo:owner/name is:open\". */\nexport const searchIssues = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: searchIssuesDescription,\n    inputSchema: searchIssuesInputSchema,\n    execute: async args => searchIssuesStep({ token: await resolveGithubToken(token, githubTokenCall('searchIssues', args)), ...args }),\n  })\n","import { tool } from 'ai'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { GithubTool } from '../types'\nimport {\n  listCommitsInputSchema,\n  listCommitsDescription,\n  listCommitsCore,\n  getCommitInputSchema,\n  getCommitDescription,\n  getCommitCore,\n  getBlameInputSchema,\n  getBlameDescription,\n  getBlameCore,\n  compareCommitsInputSchema,\n  compareCommitsDescription,\n  compareCommitsCore,\n} from '../core/commits'\nimport { getCommitToModelOutput, compareCommitsToModelOutput } from '../core/model-output'\n\nasync function listCommitsStep(args: Parameters<typeof listCommitsCore>[0]) {\n  \"use step\"\n  return listCommitsCore(args)\n}\n\n/** List commits for a GitHub repository. Filter by file path to see commits that touched a file. */\nexport const listCommits = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listCommitsDescription,\n    inputSchema: listCommitsInputSchema,\n    execute: async args => listCommitsStep({ token: await resolveGithubToken(token, githubTokenCall('listCommits', args)), ...args }),\n  })\n\nasync function getCommitStep(args: Parameters<typeof getCommitCore>[0]) {\n  \"use step\"\n  return getCommitCore(args)\n}\n\n/** Get detailed information about a specific commit. Patches omitted by default. */\nexport const getCommit = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getCommitDescription,\n    inputSchema: getCommitInputSchema,\n    toModelOutput: getCommitToModelOutput,\n    execute: async args => getCommitStep({ token: await resolveGithubToken(token, githubTokenCall('getCommit', args)), ...args }),\n  })\n\nasync function getBlameStep(args: Parameters<typeof getBlameCore>[0]) {\n  \"use step\"\n  return getBlameCore(args)\n}\n\n/** Line-level git blame for a file at a commit-like ref (branch, tag, or SHA). */\nexport const getBlame = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getBlameDescription,\n    inputSchema: getBlameInputSchema,\n    execute: async args => getBlameStep({ token: await resolveGithubToken(token, githubTokenCall('getBlame', args)), ...args }),\n  })\n\nasync function compareCommitsStep(args: Parameters<typeof compareCommitsCore>[0]) {\n  \"use step\"\n  return compareCommitsCore(args)\n}\n\n/** Compare two branches, tags, or commits. Patches omitted by default. */\nexport const compareCommits = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: compareCommitsDescription,\n    inputSchema: compareCommitsInputSchema,\n    toModelOutput: compareCommitsToModelOutput,\n    execute: async args => compareCommitsStep({ token: await resolveGithubToken(token, githubTokenCall('compareCommits', args)), ...args }),\n  })\n","import { tool } from 'ai'\nimport {\n  listGistsInputSchema,\n  listGistsDescription,\n  listGistsCore,\n  getGistInputSchema,\n  getGistDescription,\n  getGistCore,\n  listGistCommentsInputSchema,\n  listGistCommentsDescription,\n  listGistCommentsCore,\n  createGistInputSchema,\n  createGistDescription,\n  createGistCore,\n  updateGistInputSchema,\n  updateGistDescription,\n  updateGistCore,\n  deleteGistInputSchema,\n  deleteGistDescription,\n  deleteGistCore,\n  createGistCommentInputSchema,\n  createGistCommentDescription,\n  createGistCommentCore,\n} from '../core/gists'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { ToolOptions, GithubTool } from '../types'\n\nasync function listGistsStep(args: Parameters<typeof listGistsCore>[0]) {\n  \"use step\"\n  return listGistsCore(args)\n}\n\n/** List gists for the authenticated user or a specific user. */\nexport const listGists = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listGistsDescription,\n    inputSchema: listGistsInputSchema,\n    execute: async args => listGistsStep({ token: await resolveGithubToken(token, githubTokenCall('listGists', args)), ...args }),\n  })\n\nasync function getGistStep(args: Parameters<typeof getGistCore>[0]) {\n  \"use step\"\n  return getGistCore(args)\n}\n\n/** Get a gist by ID, including file contents. */\nexport const getGist = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getGistDescription,\n    inputSchema: getGistInputSchema,\n    execute: async args => getGistStep({ token: await resolveGithubToken(token, githubTokenCall('getGist', args)), ...args }),\n  })\n\nasync function listGistCommentsStep(args: Parameters<typeof listGistCommentsCore>[0]) {\n  \"use step\"\n  return listGistCommentsCore(args)\n}\n\n/** List comments on a gist. */\nexport const listGistComments = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listGistCommentsDescription,\n    inputSchema: listGistCommentsInputSchema,\n    execute: async args => listGistCommentsStep({ token: await resolveGithubToken(token, githubTokenCall('listGistComments', args)), ...args }),\n  })\n\nasync function createGistStep(args: Parameters<typeof createGistCore>[0]) {\n  \"use step\"\n  return createGistCore(args)\n}\n\n/** Create a new gist with one or more files. Requires approval by default. */\nexport const createGist = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: createGistDescription,\n    needsApproval,\n    inputSchema: createGistInputSchema,\n    execute: async args => createGistStep({ token: await resolveGithubToken(token, githubTokenCall('createGist', args)), ...args }),\n  })\n\nasync function updateGistStep(args: Parameters<typeof updateGistCore>[0]) {\n  \"use step\"\n  return updateGistCore(args)\n}\n\n/** Update an existing gist. Requires approval by default. */\nexport const updateGist = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: updateGistDescription,\n    needsApproval,\n    inputSchema: updateGistInputSchema,\n    execute: async args => updateGistStep({ token: await resolveGithubToken(token, githubTokenCall('updateGist', args)), ...args }),\n  })\n\nasync function deleteGistStep(args: Parameters<typeof deleteGistCore>[0]) {\n  \"use step\"\n  return deleteGistCore(args)\n}\n\n/** Delete a gist permanently. Requires approval by default. */\nexport const deleteGist = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: deleteGistDescription,\n    needsApproval,\n    inputSchema: deleteGistInputSchema,\n    execute: async args => deleteGistStep({ token: await resolveGithubToken(token, githubTokenCall('deleteGist', args)), ...args }),\n  })\n\nasync function createGistCommentStep(args: Parameters<typeof createGistCommentCore>[0]) {\n  \"use step\"\n  return createGistCommentCore(args)\n}\n\n/** Add a comment to a gist. Requires approval by default. */\nexport const createGistComment = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: createGistCommentDescription,\n    needsApproval,\n    inputSchema: createGistCommentInputSchema,\n    execute: async args => createGistCommentStep({ token: await resolveGithubToken(token, githubTokenCall('createGistComment', args)), ...args }),\n  })\n","import { tool } from 'ai'\nimport {\n  listWorkflowsInputSchema,\n  listWorkflowsDescription,\n  listWorkflowsCore,\n  listWorkflowRunsInputSchema,\n  listWorkflowRunsDescription,\n  listWorkflowRunsCore,\n  getWorkflowRunInputSchema,\n  getWorkflowRunDescription,\n  getWorkflowRunCore,\n  listWorkflowJobsInputSchema,\n  listWorkflowJobsDescription,\n  listWorkflowJobsCore,\n  getWorkflowJobLogsInputSchema,\n  getWorkflowJobLogsDescription,\n  getWorkflowJobLogsCore,\n  triggerWorkflowInputSchema,\n  triggerWorkflowDescription,\n  triggerWorkflowCore,\n  cancelWorkflowRunInputSchema,\n  cancelWorkflowRunDescription,\n  cancelWorkflowRunCore,\n  rerunWorkflowRunInputSchema,\n  rerunWorkflowRunDescription,\n  rerunWorkflowRunCore,\n} from '../core/workflows'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { ToolOptions, GithubTool } from '../types'\n\nasync function listWorkflowsStep(args: Parameters<typeof listWorkflowsCore>[0]) {\n  \"use step\"\n  return listWorkflowsCore(args)\n}\n\n/** List GitHub Actions workflows in a repository. */\nexport const listWorkflows = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listWorkflowsDescription,\n    inputSchema: listWorkflowsInputSchema,\n    execute: async args => listWorkflowsStep({ token: await resolveGithubToken(token, githubTokenCall('listWorkflows', args)), ...args }),\n  })\n\nasync function listWorkflowRunsStep(args: Parameters<typeof listWorkflowRunsCore>[0]) {\n  \"use step\"\n  return listWorkflowRunsCore(args)\n}\n\n/** List workflow runs for a repository, optionally filtered by workflow, branch, status, or event. */\nexport const listWorkflowRuns = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listWorkflowRunsDescription,\n    inputSchema: listWorkflowRunsInputSchema,\n    execute: async args => listWorkflowRunsStep({ token: await resolveGithubToken(token, githubTokenCall('listWorkflowRuns', args)), ...args }),\n  })\n\nasync function getWorkflowRunStep(args: Parameters<typeof getWorkflowRunCore>[0]) {\n  \"use step\"\n  return getWorkflowRunCore(args)\n}\n\n/** Get details of a specific workflow run including status, timing, and trigger info. */\nexport const getWorkflowRun = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getWorkflowRunDescription,\n    inputSchema: getWorkflowRunInputSchema,\n    execute: async args => getWorkflowRunStep({ token: await resolveGithubToken(token, githubTokenCall('getWorkflowRun', args)), ...args }),\n  })\n\nasync function listWorkflowJobsStep(args: Parameters<typeof listWorkflowJobsCore>[0]) {\n  \"use step\"\n  return listWorkflowJobsCore(args)\n}\n\n/** List jobs for a workflow run, including step-level status and timing. */\nexport const listWorkflowJobs = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listWorkflowJobsDescription,\n    inputSchema: listWorkflowJobsInputSchema,\n    execute: async args => listWorkflowJobsStep({ token: await resolveGithubToken(token, githubTokenCall('listWorkflowJobs', args)), ...args }),\n  })\n\nasync function getWorkflowJobLogsStep(args: Parameters<typeof getWorkflowJobLogsCore>[0]) {\n  \"use step\"\n  return getWorkflowJobLogsCore(args)\n}\n\n/** Get the log output of a workflow job, tail-truncated with timestamps stripped. */\nexport const getWorkflowJobLogs = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getWorkflowJobLogsDescription,\n    inputSchema: getWorkflowJobLogsInputSchema,\n    execute: async args => getWorkflowJobLogsStep({ token: await resolveGithubToken(token, githubTokenCall('getWorkflowJobLogs', args)), ...args }),\n  })\n\nasync function triggerWorkflowStep(args: Parameters<typeof triggerWorkflowCore>[0]) {\n  \"use step\"\n  return triggerWorkflowCore(args)\n}\n\n/** Trigger a workflow via workflow_dispatch event. Requires approval by default. */\nexport const triggerWorkflow = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: triggerWorkflowDescription,\n    needsApproval,\n    inputSchema: triggerWorkflowInputSchema,\n    execute: async args => triggerWorkflowStep({ token: await resolveGithubToken(token, githubTokenCall('triggerWorkflow', args)), ...args }),\n  })\n\nasync function cancelWorkflowRunStep(args: Parameters<typeof cancelWorkflowRunCore>[0]) {\n  \"use step\"\n  return cancelWorkflowRunCore(args)\n}\n\n/** Cancel an in-progress workflow run. Requires approval by default. */\nexport const cancelWorkflowRun = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: cancelWorkflowRunDescription,\n    needsApproval,\n    inputSchema: cancelWorkflowRunInputSchema,\n    execute: async args => cancelWorkflowRunStep({ token: await resolveGithubToken(token, githubTokenCall('cancelWorkflowRun', args)), ...args }),\n  })\n\nasync function rerunWorkflowRunStep(args: Parameters<typeof rerunWorkflowRunCore>[0]) {\n  \"use step\"\n  return rerunWorkflowRunCore(args)\n}\n\n/** Re-run a workflow run, optionally only the failed jobs. Requires approval by default. */\nexport const rerunWorkflowRun = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: rerunWorkflowRunDescription,\n    needsApproval,\n    inputSchema: rerunWorkflowRunInputSchema,\n    execute: async args => rerunWorkflowRunStep({ token: await resolveGithubToken(token, githubTokenCall('rerunWorkflowRun', args)), ...args }),\n  })\n","import { tool } from 'ai'\nimport {\n  listCheckRunsInputSchema,\n  listCheckRunsDescription,\n  listCheckRunsCore,\n  getCombinedStatusInputSchema,\n  getCombinedStatusDescription,\n  getCombinedStatusCore,\n} from '../core/checks'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { GithubTool } from '../types'\n\nasync function listCheckRunsStep(args: Parameters<typeof listCheckRunsCore>[0]) {\n  \"use step\"\n  return listCheckRunsCore(args)\n}\n\n/** List check runs (Checks API — GitHub Actions and other CI providers) for a commit, branch, or tag. */\nexport const listCheckRuns = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listCheckRunsDescription,\n    inputSchema: listCheckRunsInputSchema,\n    execute: async args => listCheckRunsStep({ token: await resolveGithubToken(token, githubTokenCall('listCheckRuns', args)), ...args }),\n  })\n\nasync function getCombinedStatusStep(args: Parameters<typeof getCombinedStatusCore>[0]) {\n  \"use step\"\n  return getCombinedStatusCore(args)\n}\n\n/** Get the combined commit status (Statuses API — legacy CI integrations) for a commit, branch, or tag. */\nexport const getCombinedStatus = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getCombinedStatusDescription,\n    inputSchema: getCombinedStatusInputSchema,\n    execute: async args => getCombinedStatusStep({ token: await resolveGithubToken(token, githubTokenCall('getCombinedStatus', args)), ...args }),\n  })\n","import { tool } from 'ai'\nimport {\n  listReleasesInputSchema,\n  listReleasesDescription,\n  listReleasesCore,\n  getLatestReleaseInputSchema,\n  getLatestReleaseDescription,\n  getLatestReleaseCore,\n  getReleaseInputSchema,\n  getReleaseDescription,\n  getReleaseCore,\n  createReleaseInputSchema,\n  createReleaseDescription,\n  createReleaseCore,\n  updateReleaseInputSchema,\n  updateReleaseDescription,\n  updateReleaseCore,\n  deleteReleaseInputSchema,\n  deleteReleaseDescription,\n  deleteReleaseCore,\n} from '../core/releases'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { ToolOptions, GithubTool } from '../types'\n\nasync function listReleasesStep(args: Parameters<typeof listReleasesCore>[0]) {\n  \"use step\"\n  return listReleasesCore(args)\n}\n\n/** List releases for a GitHub repository, newest first (includes drafts and prereleases). */\nexport const listReleases = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: listReleasesDescription,\n    inputSchema: listReleasesInputSchema,\n    execute: async args => listReleasesStep({ token: await resolveGithubToken(token, githubTokenCall('listReleases', args)), ...args }),\n  })\n\nasync function getLatestReleaseStep(args: Parameters<typeof getLatestReleaseCore>[0]) {\n  \"use step\"\n  return getLatestReleaseCore(args)\n}\n\n/** Get the latest published release for a GitHub repository (excludes drafts and prereleases). */\nexport const getLatestRelease = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getLatestReleaseDescription,\n    inputSchema: getLatestReleaseInputSchema,\n    execute: async args => getLatestReleaseStep({ token: await resolveGithubToken(token, githubTokenCall('getLatestRelease', args)), ...args }),\n  })\n\nasync function getReleaseStep(args: Parameters<typeof getReleaseCore>[0]) {\n  \"use step\"\n  return getReleaseCore(args)\n}\n\n/** Get a specific release by ID, including its assets. */\nexport const getRelease = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getReleaseDescription,\n    inputSchema: getReleaseInputSchema,\n    execute: async args => getReleaseStep({ token: await resolveGithubToken(token, githubTokenCall('getRelease', args)), ...args }),\n  })\n\nasync function createReleaseStep(args: Parameters<typeof createReleaseCore>[0]) {\n  \"use step\"\n  return createReleaseCore(args)\n}\n\n/** Create a new release (and its tag if needed) in a GitHub repository. Requires approval by default. */\nexport const createRelease = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: createReleaseDescription,\n    needsApproval,\n    inputSchema: createReleaseInputSchema,\n    execute: async args => createReleaseStep({ token: await resolveGithubToken(token, githubTokenCall('createRelease', args)), ...args }),\n  })\n\nasync function updateReleaseStep(args: Parameters<typeof updateReleaseCore>[0]) {\n  \"use step\"\n  return updateReleaseCore(args)\n}\n\n/** Update an existing release — tag, target, title, notes, draft, or prerelease status. Requires approval by default. */\nexport const updateRelease = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: updateReleaseDescription,\n    needsApproval,\n    inputSchema: updateReleaseInputSchema,\n    execute: async args => updateReleaseStep({ token: await resolveGithubToken(token, githubTokenCall('updateRelease', args)), ...args }),\n  })\n\nasync function deleteReleaseStep(args: Parameters<typeof deleteReleaseCore>[0]) {\n  \"use step\"\n  return deleteReleaseCore(args)\n}\n\n/** Delete a release permanently. Requires approval by default. */\nexport const deleteRelease = (token: GithubTokenInput, { needsApproval = true }: ToolOptions = {}): GithubTool =>\n  tool({\n    description: deleteReleaseDescription,\n    needsApproval,\n    inputSchema: deleteReleaseInputSchema,\n    execute: async args => deleteReleaseStep({ token: await resolveGithubToken(token, githubTokenCall('deleteRelease', args)), ...args }),\n  })\n","import { tool } from 'ai'\nimport {\n  getPullRequestContextInputSchema,\n  getPullRequestContextDescription,\n  getPullRequestContextCore,\n  getIssueContextInputSchema,\n  getIssueContextDescription,\n  getIssueContextCore,\n  getReleaseContextInputSchema,\n  getReleaseContextDescription,\n  getReleaseContextCore,\n  getCiFailureContextInputSchema,\n  getCiFailureContextDescription,\n  getCiFailureContextCore,\n} from '../core/bundles'\nimport { getPullRequestContextToModelOutput } from '../core/model-output'\nimport { githubTokenCall, resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { GithubTool } from '../types'\n\nasync function getPullRequestContextStep(args: Parameters<typeof getPullRequestContextCore>[0]) {\n  \"use step\"\n  return getPullRequestContextCore(args)\n}\n\n/** Fetch pull request details plus files, reviews, and optional CI checks in one call. */\nexport const getPullRequestContext = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getPullRequestContextDescription,\n    inputSchema: getPullRequestContextInputSchema,\n    toModelOutput: getPullRequestContextToModelOutput,\n    execute: async args => getPullRequestContextStep({ token: await resolveGithubToken(token, githubTokenCall('getPullRequestContext', args)), ...args }),\n  })\n\nasync function getIssueContextStep(args: Parameters<typeof getIssueContextCore>[0]) {\n  \"use step\"\n  return getIssueContextCore(args)\n}\n\n/** Fetch an issue plus available label names and recent comments in one call. */\nexport const getIssueContext = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getIssueContextDescription,\n    inputSchema: getIssueContextInputSchema,\n    execute: async args => getIssueContextStep({ token: await resolveGithubToken(token, githubTokenCall('getIssueContext', args)), ...args }),\n  })\n\nasync function getReleaseContextStep(args: Parameters<typeof getReleaseContextCore>[0]) {\n  \"use step\"\n  return getReleaseContextCore(args)\n}\n\n/** Fetch a release plus the previous release and tag comparison in one call. */\nexport const getReleaseContext = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getReleaseContextDescription,\n    inputSchema: getReleaseContextInputSchema,\n    execute: async args => getReleaseContextStep({ token: await resolveGithubToken(token, githubTokenCall('getReleaseContext', args)), ...args }),\n  })\n\nasync function getCiFailureContextStep(args: Parameters<typeof getCiFailureContextCore>[0]) {\n  \"use step\"\n  return getCiFailureContextCore(args)\n}\n\n/** Diagnose CI failures for a ref — combined status, failing checks, and failed workflow jobs. */\nexport const getCiFailureContext = (token: GithubTokenInput): GithubTool =>\n  tool({\n    description: getCiFailureContextDescription,\n    inputSchema: getCiFailureContextInputSchema,\n    execute: async args => getCiFailureContextStep({ token: await resolveGithubToken(token, githubTokenCall('getCiFailureContext', args)), ...args }),\n  })\n","import type { ModelMessage } from 'ai'\nimport { needsAutoApproval, type GithubEvaluationOptions } from './evaluation'\nimport type { GithubWriteToolName } from './write-tools'\nimport { resolveApprovalMode, type ApprovalConfig } from './approval-policy'\nexport { resolveApprovalMode } from './approval-policy'\nexport type { ApprovalConfig, StaticApprovalConfig, ToolApprovalMode } from './approval-policy'\n\n/**\n * Resolve the AI SDK `needsApproval` value for a write tool.\n * `'auto'` becomes a function that evaluates each call with {@link needsAutoApproval}.\n */\nexport function resolveAiSdkApproval(\n  toolName: GithubWriteToolName,\n  config: ApprovalConfig,\n  evaluation?: GithubEvaluationOptions,\n): boolean | ((input: unknown, options: { messages: ModelMessage[] }) => Promise<boolean>) {\n  const mode = resolveApprovalMode(toolName, config)\n  if (mode !== 'auto') return mode\n  return (input, { messages }) => needsAutoApproval(toolName, input, messages, evaluation)\n}\n","import { ToolLoopAgent } from 'ai'\nimport type { ToolLoopAgentSettings, ToolSet } from 'ai'\nimport { createGithubTools } from './index'\nimport type { AllGithubTools, GithubToolsBaseOptions } from './core/tool-types'\nimport { resolvePresetTools, type CombinedPresetToolNames, type GithubToolPreset, type PresetToolName } from './core/presets'\nimport { selectPresets } from './core/evaluation'\nimport type { GithubToolName } from './core/tool-names'\nimport { resolveInstructions } from './core/instructions'\nexport { resolveInstructions } from './core/instructions'\n\ntype AgentOptions = Omit<ToolLoopAgentSettings<ToolSet>, 'model' | 'tools' | 'instructions'>\n\nexport type CreateGithubAgentOptions = AgentOptions & GithubToolsBaseOptions & {\n  model: ToolLoopAgentSettings<ToolSet>['model']\n  /**\n   * Restrict tools and system prompt to a predefined preset.\n   *\n   * Selects a subset of tools and, when a single preset is passed,\n   * sets a matching system prompt. Combine presets with an array to merge tool sets.\n   *\n   * `'auto'` picks presets per call from the latest user message with an evaluation model\n   * (Jev by default, see `evaluation`), then narrows `activeTools` and uses the matching\n   * system prompt. Combines at most two presets (`evaluation.maxPresets`), and only uses\n   * read-only `repo-explorer` when no other preset qualifies; when none clears the threshold,\n   * uses the most likely one. Never exposes the full catalog. Needs `ai` 7.0.105 or later.\n   *\n   * @see {@link GithubToolPreset} for available presets and included tools.\n   */\n  preset?: GithubToolPreset | GithubToolPreset[] | 'auto'\n  /**\n   * Fully replace the default system prompt.\n   * When set, `preset` system prompts and `additionalInstructions` are ignored.\n   * `context` is still appended when provided.\n   */\n  instructions?: string\n  /**\n   * Append text to the preset-specific (or default) system prompt.\n   * Ignored when `instructions` is set.\n   */\n  additionalInstructions?: string\n}\n\nexport function createGithubAgent(options: CreateGithubAgentOptions & { preset?: undefined | 'auto' }): ToolLoopAgent<never, AllGithubTools>\nexport function createGithubAgent<P extends GithubToolPreset>(\n  options: CreateGithubAgentOptions & { preset: P },\n): ToolLoopAgent<never, Pick<AllGithubTools, PresetToolName<P>>>\nexport function createGithubAgent<P extends readonly GithubToolPreset[]>(\n  options: CreateGithubAgentOptions & { preset: P },\n): ToolLoopAgent<never, Pick<AllGithubTools, CombinedPresetToolNames<P>>>\n\n/**\n * Create a pre-configured GitHub agent powered by the AI SDK's `ToolLoopAgent`.\n *\n * Returns a `ToolLoopAgent` instance with `.generate()` and `.stream()` methods.\n *\n * @example\n * ```ts\n * import { createGithubAgent } from '@github-tools/sdk'\n *\n * const agent = createGithubAgent({\n *   model: 'anthropic/claude-opus-5.5',\n *   token: process.env.GITHUB_TOKEN!,\n *   preset: 'code-review',\n *   context: { owner: 'vercel', repo: 'ai', pullNumber: 42 },\n * })\n *\n * const result = await agent.generate({ prompt: 'Review this PR' })\n * ```\n */\nexport function createGithubAgent({\n  token,\n  preset,\n  requireApproval,\n  evaluation,\n  context,\n  instructions,\n  additionalInstructions,\n  author,\n  committer,\n  coAuthors,\n  ...agentOptions\n}: CreateGithubAgentOptions): ToolLoopAgent<never, AllGithubTools | Pick<AllGithubTools, GithubToolName>> {\n  const staticPreset = preset === 'auto' ? undefined : preset\n  const tools = createGithubTools({ token, requireApproval, evaluation, preset: staticPreset, context, author, committer, coAuthors })\n  const settings = {\n    ...agentOptions,\n    tools,\n    instructions: resolveInstructions({ preset: staticPreset, instructions, additionalInstructions, context }),\n  } as ToolLoopAgentSettings<never, typeof tools>\n\n  if (preset === 'auto') {\n    const prepareCall = agentOptions.prepareCall as typeof settings.prepareCall\n    settings.prepareCall = async (call) => {\n      const messages = typeof call.prompt === 'string'\n        ? [{ role: 'user' as const, content: call.prompt }]\n        : call.prompt ?? call.messages ?? []\n      const selected = await selectPresets(messages, evaluation)\n      const next = {\n        ...call,\n        activeTools: [...resolvePresetTools(selected)!],\n        instructions: resolveInstructions({ preset: selected.length === 1 ? selected[0] : selected, instructions, additionalInstructions, context }),\n      }\n      return prepareCall ? prepareCall(next) : next\n    }\n  }\n\n  return new ToolLoopAgent(settings) as ToolLoopAgent<never, typeof tools>\n}\n","import type { ToolSet } from 'ai'\nimport { getRepository, listBranches, getFileContent, getRepositoryTree, createBranch, deleteBranch, forkRepository, createRepository, createOrUpdateFile } from './tools/repository'\nimport { listPullRequests, getPullRequest, createPullRequest, mergePullRequest, updatePullRequest, addPullRequestComment, updatePullRequestComment, deletePullRequestComment, listPullRequestFiles, listPullRequestReviews, listPullRequestReviewThreads, createPullRequestReview, replyToReviewComment, resolveReviewThread, requestReviewers } from './tools/pull-requests'\nimport { listIssues, getIssue, listIssueComments, createIssue, addIssueComment, updateIssueComment, deleteIssueComment, closeIssue, updateIssue, listLabels, addLabels, removeLabel, createLabel, updateLabel, deleteLabel, addAssignees, removeAssignees } from './tools/issues'\nimport { listIssueReactions, addIssueReaction, listCommentReactions, addCommentReaction } from './tools/reactions'\nimport { listDiscussions, getDiscussion, addDiscussionComment } from './tools/discussions'\nimport { listNotifications, markNotificationRead } from './tools/notifications'\nimport { searchCode, searchRepositories, searchIssues } from './tools/search'\nimport { listCommits, getCommit, getBlame, compareCommits } from './tools/commits'\nimport { listGists, getGist, listGistComments, createGist, updateGist, deleteGist, createGistComment } from './tools/gists'\nimport { listWorkflows, listWorkflowRuns, getWorkflowRun, listWorkflowJobs, getWorkflowJobLogs, triggerWorkflow, cancelWorkflowRun, rerunWorkflowRun } from './tools/workflows'\nimport { listCheckRuns, getCombinedStatus } from './tools/checks'\nimport { listReleases, getLatestRelease, getRelease, createRelease, updateRelease, deleteRelease } from './tools/releases'\nimport { getPullRequestContext, getIssueContext, getReleaseContext, getCiFailureContext } from './tools/bundles'\nimport { resolveAiSdkApproval } from './core/approval'\nimport { bindToolsContext } from './core/context'\nimport { stripRateLimit } from './core/rate-limit'\nimport { resolvePresetTools, type CombinedPresetToolNames, type GithubToolPreset, type PresetToolName } from './core/presets'\nimport type { GithubTool } from './types'\nimport { type GithubToolName } from './core/tool-names'\nimport { type AllGithubTools, type GithubToolsBaseOptions } from './core/tool-types'\nimport { createGithubTokenResolver } from './core/token'\nimport type { GithubWriteToolName } from './core/write-tools'\n\nexport type { GithubWriteToolName } from './core/write-tools'\nexport type { ApprovalConfig, StaticApprovalConfig, ToolApprovalMode } from './core/approval'\nexport type { GithubEvaluationOptions } from './core/evaluation'\nexport { AUTO_APPROVAL_TOOLS, DEFAULT_EVALUATION_MODEL } from './core/evaluation'\nexport type { GithubToolsContext } from './core/context'\nexport type { GithubToolPreset, PresetToolName, CombinedPresetToolNames } from './core/presets'\nexport type { GithubToolName } from './core/tool-names'\nexport type { AllGithubTools, GithubToolsForPreset, PickGithubTools } from './core/tool-types'\nexport { PRESET_TOOLS } from './core/presets'\nexport { GITHUB_TOOL_NAMES } from './core/tool-names'\nexport { GITHUB_WRITE_TOOLS } from './core/write-tools'\n\nexport type GithubToolsOptions = GithubToolsBaseOptions & {\n  /**\n   * Restrict the returned tools to a predefined preset.\n   * Prefer a focused preset for most agents. Omit or use `maintainer` for the full catalog.\n   *\n   * @see {@link GithubToolPreset} for available presets and included tools.\n   *\n   * @example\n   * ```ts\n   * // Only code-review tools\n   * createGithubTools({ token, preset: 'code-review' })\n   *\n   * // Combine presets\n   * createGithubTools({ token, preset: ['code-review', 'issue-triage'] })\n   *\n   * // Full catalog\n   * createGithubTools({ token, preset: 'maintainer' })\n   * ```\n   */\n  preset?: GithubToolPreset | GithubToolPreset[]\n}\n\nexport function createGithubTools(options?: GithubToolsBaseOptions & { preset?: undefined }): AllGithubTools\nexport function createGithubTools<P extends GithubToolPreset>(\n  options: GithubToolsBaseOptions & { preset: P },\n): Pick<AllGithubTools, PresetToolName<P>>\nexport function createGithubTools<P extends readonly GithubToolPreset[]>(\n  options: GithubToolsBaseOptions & { preset: P },\n): Pick<AllGithubTools, CombinedPresetToolNames<P>>\nexport function createGithubTools(options?: GithubToolsOptions): AllGithubTools | Pick<AllGithubTools, GithubToolName>\n/**\n * Create a set of GitHub tools for the Vercel AI SDK.\n *\n * Write operations require user approval by default.\n * Control this globally or per-tool via `requireApproval`.\n * Prefer `preset` to expose only the tools your agent needs.\n * Pass `context` to default owner/repo/PR/issue/ref on tool inputs.\n *\n * @example\n * ```ts\n * // Code-review agent — only PR & commit tools\n * createGithubTools({ token, preset: 'code-review' })\n *\n * // Scoped to a repo / PR\n * createGithubTools({\n *   token,\n *   preset: 'code-review',\n *   context: { owner: 'vercel', repo: 'ai', pullNumber: 42 },\n * })\n *\n * // Combine presets\n * createGithubTools({ token, preset: ['code-review', 'issue-triage'] })\n *\n * // Full catalog (same as omitting preset)\n * createGithubTools({ token, preset: 'maintainer' })\n *\n * // Ask only for risky or unrequested low-risk writes (evaluated by Jev)\n * createGithubTools({ token, requireApproval: 'auto' })\n *\n * // Granular approval\n * createGithubTools({\n *   token,\n *   preset: 'maintainer',\n *   requireApproval: {\n *     mergePullRequest: true,\n *     createOrUpdateFile: true,\n *     addPullRequestComment: false,\n *   }\n * })\n * ```\n */\nexport function createGithubTools({\n  token,\n  requireApproval = true,\n  evaluation,\n  preset,\n  context,\n  overrides,\n  author,\n  committer,\n  coAuthors,\n}: GithubToolsOptions = {}): AllGithubTools | Pick<AllGithubTools, GithubToolName> {\n  const resolveToken = createGithubTokenResolver(token)\n  const approval = (name: GithubWriteToolName) => ({ needsApproval: resolveAiSdkApproval(name, requireApproval, evaluation) })\n  const allowed = preset ? resolvePresetTools(preset) : null\n\n  const allTools = {\n    getRepository: getRepository(resolveToken),\n    listBranches: listBranches(resolveToken),\n    getFileContent: getFileContent(resolveToken),\n    getRepositoryTree: getRepositoryTree(resolveToken),\n    listPullRequests: listPullRequests(resolveToken),\n    getPullRequest: getPullRequest(resolveToken),\n    listIssues: listIssues(resolveToken),\n    getIssue: getIssue(resolveToken),\n    searchCode: searchCode(resolveToken),\n    searchRepositories: searchRepositories(resolveToken),\n    searchIssues: searchIssues(resolveToken),\n    listCommits: listCommits(resolveToken),\n    getCommit: getCommit(resolveToken),\n    getBlame: getBlame(resolveToken),\n    compareCommits: compareCommits(resolveToken),\n    createBranch: createBranch(resolveToken, approval('createBranch')),\n    deleteBranch: deleteBranch(resolveToken, approval('deleteBranch')),\n    forkRepository: forkRepository(resolveToken, approval('forkRepository')),\n    createRepository: createRepository(resolveToken, approval('createRepository')),\n    createOrUpdateFile: createOrUpdateFile(resolveToken, { ...approval('createOrUpdateFile'), author, committer, coAuthors }),\n    createPullRequest: createPullRequest(resolveToken, approval('createPullRequest')),\n    mergePullRequest: mergePullRequest(resolveToken, { ...approval('mergePullRequest'), coAuthors }),\n    updatePullRequest: updatePullRequest(resolveToken, approval('updatePullRequest')),\n    addPullRequestComment: addPullRequestComment(resolveToken, approval('addPullRequestComment')),\n    updatePullRequestComment: updatePullRequestComment(resolveToken, approval('updatePullRequestComment')),\n    deletePullRequestComment: deletePullRequestComment(resolveToken, approval('deletePullRequestComment')),\n    listPullRequestFiles: listPullRequestFiles(resolveToken),\n    listPullRequestReviews: listPullRequestReviews(resolveToken),\n    listPullRequestReviewThreads: listPullRequestReviewThreads(resolveToken),\n    createPullRequestReview: createPullRequestReview(resolveToken, approval('createPullRequestReview')),\n    replyToReviewComment: replyToReviewComment(resolveToken, approval('replyToReviewComment')),\n    resolveReviewThread: resolveReviewThread(resolveToken, approval('resolveReviewThread')),\n    requestReviewers: requestReviewers(resolveToken, approval('requestReviewers')),\n    getPullRequestContext: getPullRequestContext(resolveToken),\n    getIssueContext: getIssueContext(resolveToken),\n    listIssueComments: listIssueComments(resolveToken),\n    createIssue: createIssue(resolveToken, approval('createIssue')),\n    addIssueComment: addIssueComment(resolveToken, approval('addIssueComment')),\n    updateIssueComment: updateIssueComment(resolveToken, approval('updateIssueComment')),\n    deleteIssueComment: deleteIssueComment(resolveToken, approval('deleteIssueComment')),\n    closeIssue: closeIssue(resolveToken, approval('closeIssue')),\n    updateIssue: updateIssue(resolveToken, approval('updateIssue')),\n    listLabels: listLabels(resolveToken),\n    addLabels: addLabels(resolveToken, approval('addLabels')),\n    removeLabel: removeLabel(resolveToken, approval('removeLabel')),\n    createLabel: createLabel(resolveToken, approval('createLabel')),\n    updateLabel: updateLabel(resolveToken, approval('updateLabel')),\n    deleteLabel: deleteLabel(resolveToken, approval('deleteLabel')),\n    addAssignees: addAssignees(resolveToken, approval('addAssignees')),\n    removeAssignees: removeAssignees(resolveToken, approval('removeAssignees')),\n    listIssueReactions: listIssueReactions(resolveToken),\n    addIssueReaction: addIssueReaction(resolveToken, approval('addIssueReaction')),\n    listCommentReactions: listCommentReactions(resolveToken),\n    addCommentReaction: addCommentReaction(resolveToken, approval('addCommentReaction')),\n    listDiscussions: listDiscussions(resolveToken),\n    getDiscussion: getDiscussion(resolveToken),\n    addDiscussionComment: addDiscussionComment(resolveToken, approval('addDiscussionComment')),\n    listNotifications: listNotifications(resolveToken),\n    markNotificationRead: markNotificationRead(resolveToken, approval('markNotificationRead')),\n    listGists: listGists(resolveToken),\n    getGist: getGist(resolveToken),\n    listGistComments: listGistComments(resolveToken),\n    createGist: createGist(resolveToken, approval('createGist')),\n    updateGist: updateGist(resolveToken, approval('updateGist')),\n    deleteGist: deleteGist(resolveToken, approval('deleteGist')),\n    createGistComment: createGistComment(resolveToken, approval('createGistComment')),\n    listWorkflows: listWorkflows(resolveToken),\n    listWorkflowRuns: listWorkflowRuns(resolveToken),\n    getWorkflowRun: getWorkflowRun(resolveToken),\n    listWorkflowJobs: listWorkflowJobs(resolveToken),\n    getWorkflowJobLogs: getWorkflowJobLogs(resolveToken),\n    triggerWorkflow: triggerWorkflow(resolveToken, approval('triggerWorkflow')),\n    cancelWorkflowRun: cancelWorkflowRun(resolveToken, approval('cancelWorkflowRun')),\n    rerunWorkflowRun: rerunWorkflowRun(resolveToken, approval('rerunWorkflowRun')),\n    listCheckRuns: listCheckRuns(resolveToken),\n    getCombinedStatus: getCombinedStatus(resolveToken),\n    getCiFailureContext: getCiFailureContext(resolveToken),\n    listReleases: listReleases(resolveToken),\n    getLatestRelease: getLatestRelease(resolveToken),\n    getRelease: getRelease(resolveToken),\n    getReleaseContext: getReleaseContext(resolveToken),\n    createRelease: createRelease(resolveToken, approval('createRelease')),\n    updateRelease: updateRelease(resolveToken, approval('updateRelease')),\n    deleteRelease: deleteRelease(resolveToken, approval('deleteRelease')),\n  } satisfies AllGithubTools\n\n  if (overrides) {\n    for (const [name, toolOverrides] of Object.entries(overrides)) {\n      if (name in allTools && toolOverrides) {\n        const key = name as keyof typeof allTools\n        Object.assign(allTools, { [key]: { ...allTools[key], ...toolOverrides } })\n      }\n    }\n  }\n\n  const scoped = bindToolsContext(\n    Object.fromEntries(\n      Object.entries(allTools).map(([name, tool]) => [name, withStrippedRateLimit(tool)]),\n    ) as typeof allTools,\n    context,\n  )\n\n  if (!allowed) return scoped\n\n  return Object.fromEntries(\n    Object.entries(scoped).filter(([name]) => allowed.has(name as GithubToolName))\n  ) as Pick<typeof scoped, GithubToolName>\n}\n\nfunction withStrippedRateLimit(tool: GithubTool): GithubTool {\n  const inner = tool.toModelOutput\n  return {\n    ...tool,\n    toModelOutput: (options) => {\n      const next = { ...options, output: stripRateLimit(options.output) }\n      if (inner) return inner(next)\n      return { type: 'json' as const, value: next.output }\n    },\n  }\n}\n\nexport type GithubTools = AllGithubTools & ToolSet\n\n// Re-export individual tool factories for cherry-picking\nexport { createOctokit } from './client'\nexport { getRepository, listBranches, getFileContent, getRepositoryTree, createBranch, deleteBranch, forkRepository, createRepository, createOrUpdateFile } from './tools/repository'\nexport { listPullRequests, getPullRequest, createPullRequest, mergePullRequest, updatePullRequest, addPullRequestComment, updatePullRequestComment, deletePullRequestComment, listPullRequestFiles, listPullRequestReviews, listPullRequestReviewThreads, createPullRequestReview, replyToReviewComment, resolveReviewThread, requestReviewers } from './tools/pull-requests'\nexport { listIssues, getIssue, listIssueComments, createIssue, addIssueComment, updateIssueComment, deleteIssueComment, closeIssue, updateIssue, listLabels, addLabels, removeLabel, createLabel, updateLabel, deleteLabel, addAssignees, removeAssignees } from './tools/issues'\nexport { listIssueReactions, addIssueReaction, listCommentReactions, addCommentReaction } from './tools/reactions'\nexport { listDiscussions, getDiscussion, addDiscussionComment } from './tools/discussions'\nexport { listNotifications, markNotificationRead } from './tools/notifications'\nexport { searchCode, searchRepositories, searchIssues } from './tools/search'\nexport { listCommits, getCommit, getBlame, compareCommits } from './tools/commits'\nexport { listGists, getGist, listGistComments, createGist, updateGist, deleteGist, createGistComment } from './tools/gists'\nexport { listWorkflows, listWorkflowRuns, getWorkflowRun, listWorkflowJobs, getWorkflowJobLogs, triggerWorkflow, cancelWorkflowRun, rerunWorkflowRun } from './tools/workflows'\nexport { listCheckRuns, getCombinedStatus } from './tools/checks'\nexport { listReleases, getLatestRelease, getRelease, createRelease, updateRelease, deleteRelease } from './tools/releases'\nexport { getPullRequestContext, getIssueContext, getReleaseContext, getCiFailureContext } from './tools/bundles'\nexport type { GithubRateLimit } from './core/rate-limit'\nexport { githubToolsErrors } from './core/errors'\nexport type { CommitIdentity, CommitToolOptions, GithubTool, Octokit, ToolOptions, ToolOverrides } from './types'\nexport type { GithubTokenCall, GithubTokenInput } from './core/token'\nexport { resolveGithubToken } from './core/token'\nexport { createGithubAgent } from './agents'\nexport type { CreateGithubAgentOptions } from './agents'\n"],"mappings":"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"}