{"version":3,"file":"tanstack.mjs","names":[],"sources":["../src/tanstack/tools.ts","../src/tanstack/evaluation.ts","../src/tanstack/approval.ts","../src/tanstack/agent.ts","../src/tanstack/factories.ts"],"sourcesContent":["import { toolDefinition } from '@tanstack/ai'\nimport type { ServerTool } from '@tanstack/ai'\nimport type { z } from 'zod'\nimport { GITHUB_TOOL_CATALOG, isGithubWriteToolName } from '../core/catalog'\nimport { GITHUB_TOOL_CORES } from '../core/cores'\nimport { resolveApprovalMode, type ApprovalConfig, type ToolApprovalMode } from '../core/approval-policy'\nimport { mergeContextArgs, softenContextSchema, type GithubToolsContext } from '../core/context'\nimport { resolvePresetTools, type GithubToolPreset, type PresetToolName } from '../core/presets'\nimport { createGithubTokenResolver, githubTokenCall, type GithubTokenInput } from '../core/token'\nimport type { GithubToolName } from '../core/tool-names'\nimport { ALL_GITHUB_TOOL_NAMES } from '../core/tool-names'\nimport { stripRateLimit } from '../core/rate-limit'\nimport type { CommitIdentity } from '../types'\n\ntype Catalog = typeof GITHUB_TOOL_CATALOG\n/** A TanStack server tool with the catalog's input schema and core return type. */\nexport type GithubTanstackTool<N extends GithubToolName = GithubToolName> = N extends GithubToolName\n  ? Omit<ServerTool<Catalog[N]['inputSchema'], undefined, N, unknown, boolean>, 'execute'> & {\n    execute: (input: z.input<Catalog[N]['inputSchema']>) => ReturnType<(typeof GITHUB_TOOL_CORES)[N]>\n  }\n  : never\n\n/** Supported TanStack tool customizations. */\nexport type TanstackToolOverrides = {\n  description?: string\n  needsApproval?: boolean\n}\n\n/** Options shared by TanStack tool factories. */\nexport type TanstackToolOptions = Omit<TanstackToolOverrides, 'needsApproval'> & {\n  needsApproval?: ToolApprovalMode\n  context?: GithubToolsContext\n  author?: CommitIdentity\n  committer?: CommitIdentity\n  coAuthors?: CommitIdentity[]\n}\n\n/** Configuration for a native array of GitHub server tools. */\nexport type CreateGithubToolsOptions = Omit<TanstackToolOptions, 'description' | 'needsApproval'> & {\n  token?: GithubTokenInput\n  preset?: GithubToolPreset | readonly GithubToolPreset[]\n  requireApproval?: ApprovalConfig\n  overrides?: Partial<Record<GithubToolName, TanstackToolOverrides>>\n}\n\nexport const autoTools = new WeakMap<object, { name: GithubToolName, resolveInput: (input: unknown) => Record<string, unknown> }>()\n\nfunction buildTool<N extends GithubToolName>(name: N, token: GithubTokenInput | undefined, options: TanstackToolOptions): GithubTanstackTool<N> {\n  const descriptor = GITHUB_TOOL_CATALOG[name]\n  const resolveToken = createGithubTokenResolver(token)\n  const inputSchema = options.context ? softenContextSchema(descriptor.inputSchema, options.context) : descriptor.inputSchema\n  const resolveInput = (input: unknown): Record<string, unknown> => {\n    const args = inputSchema.parse(input) as Record<string, unknown>\n    return options.context ? mergeContextArgs(args, options.context) : args\n  }\n  const mode = options.needsApproval ?? (isGithubWriteToolName(name) ? true : false)\n  const core = GITHUB_TOOL_CORES[name] as (input: Record<string, unknown> & { token: string }) => Promise<unknown>\n  const built = toolDefinition({\n    name,\n    description: options.description ?? descriptor.description,\n    inputSchema,\n    needsApproval: mode !== false,\n  }).server(async (input) => {\n    const resolved = resolveInput(input)\n    const attribution = name === 'createOrUpdateFile'\n      ? { author: options.author, committer: options.committer, coAuthors: options.coAuthors }\n      : name === 'mergePullRequest' ? { coAuthors: options.coAuthors } : {}\n    return stripRateLimit(await core({ ...resolved, ...attribution, token: await resolveToken(githubTokenCall(name, resolved)) }))\n  })\n  if (mode === 'auto') autoTools.set(built, { name, resolveInput })\n  return built as unknown as GithubTanstackTool<N>\n}\n\nexport function toolFactory<N extends GithubToolName>(name: N) {\n  return (token: GithubTokenInput, options: TanstackToolOptions = {}): GithubTanstackTool<N> => buildTool(name, token, options)\n}\n\n/** Create TanStack server tools, optionally restricted to one or more presets. */\nexport function createGithubTools<const P extends GithubToolPreset | readonly GithubToolPreset[] | undefined = undefined>(\n  options: CreateGithubToolsOptions & { preset?: P } = {},\n): GithubTanstackTool<P extends GithubToolPreset ? PresetToolName<P> : P extends readonly GithubToolPreset[] ? PresetToolName<P[number]> : GithubToolName>[] {\n  const allowed = options.preset ? resolvePresetTools(typeof options.preset === 'string' ? options.preset : [...options.preset]) : null\n  const tools = ALL_GITHUB_TOOL_NAMES.filter(name => !allowed || allowed.has(name)).map(name => buildTool(name, options.token, {\n    context: options.context,\n    author: options.author,\n    committer: options.committer,\n    coAuthors: options.coAuthors,\n    needsApproval: isGithubWriteToolName(name) ? resolveApprovalMode(name, options.requireApproval ?? true) : false,\n    ...options.overrides?.[name],\n  }))\n  return tools as ReturnType<typeof createGithubTools<P>>\n}\n","import { boolean, decide, score } from '@tanstack/ai'\nimport type { EvaluateAdapter, ModelMessage } from '@tanstack/ai'\nimport { GITHUB_TOOL_CATALOG } from '../core/catalog'\nimport { DEFAULT_EVALUATION_MODEL, INTENT_QUESTION, PRESET_PURPOSES, RISK_QUESTION, rankPresets, requiresApproval, type RoutablePreset } from '../core/evaluation-policy'\nimport { PRESET_TOOLS } from '../core/presets'\nimport { githubToolsErrors } from '../core/errors'\nimport type { GithubToolName } from '../core/tool-names'\n\n/** Jev configuration for TanStack automatic approval and preset selection. */\nexport type GithubEvaluationOptions = {\n  /** Defaults to vercelGatewayDecider('typesafe-ai/jev') using Gateway authentication. */\n  adapter?: EvaluateAdapter\n  /** Maximum risk on the 0–2 rubric. @default 1 */\n  maxRisk?: number\n  /** Minimum probability that the user requested the call. @default 0.6 */\n  minIntent?: number\n  /** Minimum probability for a preset to qualify. @default 0.7 */\n  minPresetProbability?: number\n  /** Maximum number of combined presets. @default 2 */\n  maxPresets?: number\n}\n\nasync function evaluationAdapter(options: GithubEvaluationOptions) {\n  if (options.adapter) return options.adapter\n  const { vercelGatewayDecider } = await import('@tanstack/ai-vercel-gateway')\n  return vercelGatewayDecider(DEFAULT_EVALUATION_MODEL)\n}\n\nexport function latestUserText(messages: readonly ModelMessage[]): string {\n  const message = messages.findLast(message => message.role === 'user')\n  if (!message) return ''\n  if (typeof message.content === 'string') return message.content\n  return message.content?.flatMap(part => part.type === 'text' ? [part.content] : []).join('\\n') ?? ''\n}\n\nfunction evaluationFailed(error: unknown, options: GithubEvaluationOptions, fallback: string, signal?: AbortSignal) {\n  signal?.throwIfAborted()\n  if (error instanceof Error && error.name === 'AbortError') throw error\n  const cause = error instanceof Error ? error : new Error(String(error))\n  console.warn('[github-tools]', githubToolsErrors.EVALUATION_FAILED({\n    model: options.adapter?.model ?? DEFAULT_EVALUATION_MODEL,\n    fallback,\n    detail: cause.message,\n    cause,\n  }))\n}\n\nexport async function needsAutoApproval(name: GithubToolName, input: unknown, messages: readonly ModelMessage[], options: GithubEvaluationOptions = {}, signal?: AbortSignal): Promise<boolean> {\n  signal?.throwIfAborted()\n  try {\n    const result = await decide({\n      adapter: await evaluationAdapter(options),\n      state: { request: latestUserText(messages), toolCall: { tool: name, description: GITHUB_TOOL_CATALOG[name].description, input } },\n      questions: {\n        risk: score({ instructions: RISK_QUESTION.instructions, levels: RISK_QUESTION.criteria }),\n        intent: boolean(INTENT_QUESTION),\n      },\n      abortSignal: signal,\n    })\n    signal?.throwIfAborted()\n    return requiresApproval(result.risk.score, result.intent.probability, options)\n  } catch (error) {\n    evaluationFailed(error, options, `asking approval for ${name}`, signal)\n    return true\n  }\n}\n\nexport async function selectPresets(messages: readonly ModelMessage[], options: GithubEvaluationOptions = {}, signal?: AbortSignal): Promise<RoutablePreset[]> {\n  signal?.throwIfAborted()\n  try {\n    const presets = Object.keys(PRESET_PURPOSES) as RoutablePreset[]\n    const result = await decide({\n      adapter: await evaluationAdapter(options),\n      state: { request: latestUserText(messages) },\n      questions: Object.fromEntries(presets.map(preset => [preset, boolean({\n        instructions: 'Does handling this GitHub request need the tools of this preset?',\n        criteria: { true: JSON.stringify({ purpose: PRESET_PURPOSES[preset], tools: [...PRESET_TOOLS[preset]] }) },\n      })])),\n      abortSignal: signal,\n    })\n    signal?.throwIfAborted()\n    return rankPresets(Object.fromEntries(presets.map(preset => [preset, result[preset].probability])) as Record<RoutablePreset, number>, options)\n  } catch (error) {\n    evaluationFailed(error, options, 'using the repo-explorer preset', signal)\n    return ['repo-explorer']\n  }\n}\n","import { isDeepStrictEqual } from 'node:util'\nimport type { ChatMiddleware, ChatMiddlewareContext, Tool } from '@tanstack/ai'\nimport { autoTools } from './tools'\nimport { needsAutoApproval, type GithubEvaluationOptions } from './evaluation'\nimport { githubToolApproval } from './interrupts'\n\ntype Decision = { toolCallId: string, toolName: string, input: Record<string, unknown>, approved: boolean }\ntype RunState = { decisions: Decision[] }\n\n/** Options for GitHub approval middleware. Register githubToolApproval with chat(). */\nexport type GithubApprovalMiddlewareOptions = {\n  tools: readonly Tool[]\n  evaluation?: GithubEvaluationOptions\n}\n\n/** Evaluate automatic GitHub writes before execution and request review through githubToolApproval. */\nexport function createGithubApprovalMiddleware({ tools, evaluation }: GithubApprovalMiddlewareOptions): ChatMiddleware<unknown, typeof githubToolApproval> {\n  const managed = new Map(tools.flatMap(tool => {\n    const info = autoTools.get(tool)\n    return info ? [[tool.name, { tool, ...info }] as const] : []\n  }))\n  const runs = new WeakMap<ChatMiddlewareContext, RunState>()\n  const state = (ctx: ChatMiddlewareContext) => runs.get(ctx)!\n  const decisionFor = (ctx: ChatMiddlewareContext, toolCallId: string | undefined, toolName: string, input: unknown) =>\n    state(ctx).decisions.find(decision => decision.toolCallId === toolCallId && decision.toolName === toolName && isDeepStrictEqual(decision.input, input))\n\n  return {\n    name: 'github-tools.approval',\n    onConfig(ctx, config) {\n      if (ctx.phase === 'init') runs.set(ctx, { decisions: [] })\n      return {\n        tools: config.tools?.map(tool => {\n          const info = managed.get(tool.name)\n          if (!info || tool !== info.tool) return tool\n          return {\n            ...tool,\n            needsApproval: false,\n            execute: async (input, execution) => {\n              const resolved = info.resolveInput(input)\n              if (!decisionFor(ctx, execution?.toolCallId, tool.name, resolved)?.approved) {\n                throw new Error(`GitHub tool ${tool.name} has no approval for this input.`)\n              }\n              return tool.execute!(resolved, execution)\n            },\n          }\n        }),\n      }\n    },\n    onInterruptResolution(ctx, resolutions) {\n      for (const resolution of resolutions.for(githubToolApproval)) {\n        const payload = resolution.request.payload\n        if (!payload || !managed.has(payload.toolName)) continue\n        state(ctx).decisions.push({ ...payload, approved: resolution.status === 'resolved' && resolution.response.approved })\n      }\n    },\n    async onInterruptBoundary(ctx) {\n      if (ctx.phase !== 'beforeTools') return\n      const completed = new Set(ctx.messages.filter(message => message.role === 'tool').map(message => message.toolCallId))\n      const calls = ctx.messages.flatMap(message => message.role === 'assistant' ? message.toolCalls ?? [] : []).filter(call => !completed.has(call.id))\n      const interrupts = []\n      for (const call of calls) {\n        const info = managed.get(call.function.name)\n        if (!info) continue\n        const input = info.resolveInput(JSON.parse(call.function.arguments))\n        if (decisionFor(ctx, call.id, info.name, input)) continue\n        const needsApproval = await needsAutoApproval(info.name, input, ctx.messages, evaluation, ctx.signal)\n        if (needsApproval) {\n          interrupts.push(githubToolApproval.interrupt({\n            key: call.id,\n            reason: 'github-tool-approval',\n            message: `Approve ${info.name}?`,\n            payload: { toolCallId: call.id, toolName: info.name, input },\n          }))\n        } else {\n          state(ctx).decisions.push({ toolCallId: call.id, toolName: info.name, input, approved: true })\n        }\n      }\n      if (interrupts.length) return { interrupts }\n    },\n    onBeforeToolCall(ctx, call) {\n      const info = managed.get(call.toolName)\n      if (!info) return\n      const decision = decisionFor(ctx, call.toolCallId, call.toolName, info.resolveInput(call.args))\n      if (!decision) return { type: 'skip', result: { error: 'No approval recorded for this GitHub tool call and input.' } }\n      if (!decision.approved) return { type: 'skip', result: { error: 'User denied this GitHub tool call.' } }\n    },\n  }\n}\n","import { chat, convertMessagesToModelMessages } from '@tanstack/ai'\nimport type { AnyTextAdapter, ChatMiddleware, ChatStream } from '@tanstack/ai'\nimport { resolveInstructions } from '../core/instructions'\nimport { PRESET_TOOLS, type GithubToolPreset } from '../core/presets'\nimport { createGithubTools, type CreateGithubToolsOptions } from './tools'\nimport { selectPresets, type GithubEvaluationOptions } from './evaluation'\nimport { createGithubApprovalMiddleware } from './approval'\nimport { githubToolApproval } from './interrupts'\n\ntype NativeOptions<A extends AnyTextAdapter> = Parameters<typeof chat<A, undefined, true>>[0]\ntype ChatSettings<A extends AnyTextAdapter> = Omit<NativeOptions<A>, 'tools' | 'messages' | 'systemPrompts' | 'context' | 'middleware' | 'interrupts' | 'stream' | 'outputSchema'>\n\n/** Configure a GitHub agent backed by TanStack chat(). */\nexport type CreateGithubAgentOptions<A extends AnyTextAdapter> = ChatSettings<A> & Omit<CreateGithubToolsOptions, 'preset'> & {\n  /** Explicit presets or request-based selection with Jev. */\n  preset?: GithubToolPreset | readonly GithubToolPreset[] | 'auto'\n  /** Replace the default instructions; repository context is still appended. */\n  instructions?: string\n  /** Append to default instructions, unless instructions is supplied. */\n  additionalInstructions?: string\n  /** Evaluator adapter and thresholds for automatic routing and approval. */\n  evaluation?: GithubEvaluationOptions\n  /** Additional TanStack middleware. GitHub approval runs before these hooks. */\n  middleware?: ChatMiddleware[]\n}\n\n/** One agent invocation, including TanStack cancellation and continuation options. */\nexport type GithubAgentCallOptions<A extends AnyTextAdapter> = Omit<Partial<ChatSettings<A>>, 'adapter'> & (\n  | { prompt: string, messages?: never }\n  | { messages: NonNullable<NativeOptions<A>['messages']>, prompt?: never }\n)\n\n/** A reusable, stateless TanStack GitHub agent. */\nexport type GithubAgent<A extends AnyTextAdapter> = {\n  /** Collect TanStack's text result. Throws on interrupts; use stream() for approval UIs. */\n  generate: (options: GithubAgentCallOptions<A>) => Promise<string>\n  /** Run the tool loop as native TanStack events, including approval interrupts. */\n  stream: (options: GithubAgentCallOptions<A>) => ChatStream\n}\n\n/** Create a GitHub agent with preset instructions, tools, and automatic approval middleware. */\nexport function createGithubAgent<A extends AnyTextAdapter>({\n  token, preset, requireApproval, overrides, context, author, committer, coAuthors,\n  instructions, additionalInstructions, evaluation, middleware = [], ...settings\n}: CreateGithubAgentOptions<A>): GithubAgent<A> {\n  async function prepare(call: GithubAgentCallOptions<A>) {\n    const { prompt, messages: suppliedMessages, ...callSettings } = call\n    const messages = suppliedMessages ?? [{ role: 'user' as const, content: prompt! }]\n    const modelMessages = convertMessagesToModelMessages(messages)\n    const continuingAuto = preset === 'auto' && Boolean((callSettings.resume ?? settings.resume)?.length)\n    const selected = preset === 'auto'\n      ? continuingAuto ? 'repo-explorer' : await selectPresets(modelMessages, evaluation, (callSettings.abortController ?? settings.abortController)?.signal)\n      : preset\n    const availableTools = createGithubTools({ token, preset: continuingAuto ? undefined : selected, requireApproval, overrides, context, author, committer, coAuthors })\n    const completed = new Set(modelMessages.filter(message => message.role === 'tool').map(message => message.toolCallId))\n    const pendingNames = new Set(modelMessages.flatMap(message => message.role === 'assistant' ? message.toolCalls ?? [] : [])\n      .filter(call => !completed.has(call.id)).map(call => call.function.name))\n    const continuationNames = new Set<string>([...PRESET_TOOLS['repo-explorer'], ...pendingNames])\n    const tools = continuingAuto ? availableTools.filter(tool => continuationNames.has(tool.name)) : availableTools\n    const promptPreset: GithubToolPreset | GithubToolPreset[] | undefined = typeof selected === 'string' || selected === undefined\n      ? selected\n      : selected.length === 1 ? selected[0] : [...selected]\n    return {\n      ...settings,\n      ...callSettings,\n      messages,\n      tools,\n      systemPrompts: [resolveInstructions({ preset: continuingAuto ? undefined : promptPreset, instructions, additionalInstructions, context })],\n      middleware: [createGithubApprovalMiddleware({ tools, evaluation }), ...middleware],\n      interrupts: [githubToolApproval],\n    }\n  }\n\n  return {\n    async generate(call) {\n      const prepared = await prepare(call)\n      let interrupted = false\n      const observeInterrupt: ChatMiddleware = {\n        name: 'github-tools.generate',\n        onChunk(_ctx, chunk) {\n          if (chunk.type === 'RUN_FINISHED' && chunk.outcome?.type === 'interrupt') interrupted = true\n        },\n      }\n      const text = await chat({ ...prepared, middleware: [observeInterrupt, ...prepared.middleware], stream: false })\n      if (interrupted) throw new Error('GitHub agent requires review. Use stream() to handle approval interrupts and continuation.')\n      return text\n    },\n    async *stream(call) {\n      yield* chat({ ...await prepare(call), stream: true })\n    },\n  }\n}\n","import { toolFactory } from './tools'\n\n/** Create the TanStack `getRepository` server tool. */\nexport const getRepository = toolFactory('getRepository')\n\n/** Create the TanStack `listBranches` server tool. */\nexport const listBranches = toolFactory('listBranches')\n\n/** Create the TanStack `getFileContent` server tool. */\nexport const getFileContent = toolFactory('getFileContent')\n\n/** Create the TanStack `getRepositoryTree` server tool. */\nexport const getRepositoryTree = toolFactory('getRepositoryTree')\n\n/** Create the TanStack `createBranch` server tool. */\nexport const createBranch = toolFactory('createBranch')\n\n/** Create the TanStack `deleteBranch` server tool. */\nexport const deleteBranch = toolFactory('deleteBranch')\n\n/** Create the TanStack `forkRepository` server tool. */\nexport const forkRepository = toolFactory('forkRepository')\n\n/** Create the TanStack `createRepository` server tool. */\nexport const createRepository = toolFactory('createRepository')\n\n/** Create the TanStack `createOrUpdateFile` server tool. */\nexport const createOrUpdateFile = toolFactory('createOrUpdateFile')\n\n/** Create the TanStack `listPullRequests` server tool. */\nexport const listPullRequests = toolFactory('listPullRequests')\n\n/** Create the TanStack `getPullRequest` server tool. */\nexport const getPullRequest = toolFactory('getPullRequest')\n\n/** Create the TanStack `createPullRequest` server tool. */\nexport const createPullRequest = toolFactory('createPullRequest')\n\n/** Create the TanStack `mergePullRequest` server tool. */\nexport const mergePullRequest = toolFactory('mergePullRequest')\n\n/** Create the TanStack `updatePullRequest` server tool. */\nexport const updatePullRequest = toolFactory('updatePullRequest')\n\n/** Create the TanStack `addPullRequestComment` server tool. */\nexport const addPullRequestComment = toolFactory('addPullRequestComment')\n\n/** Create the TanStack `updatePullRequestComment` server tool. */\nexport const updatePullRequestComment = toolFactory('updatePullRequestComment')\n\n/** Create the TanStack `deletePullRequestComment` server tool. */\nexport const deletePullRequestComment = toolFactory('deletePullRequestComment')\n\n/** Create the TanStack `listPullRequestFiles` server tool. */\nexport const listPullRequestFiles = toolFactory('listPullRequestFiles')\n\n/** Create the TanStack `listPullRequestReviews` server tool. */\nexport const listPullRequestReviews = toolFactory('listPullRequestReviews')\n\n/** Create the TanStack `createPullRequestReview` server tool. */\nexport const createPullRequestReview = toolFactory('createPullRequestReview')\n\n/** Create the TanStack `listPullRequestReviewThreads` server tool. */\nexport const listPullRequestReviewThreads = toolFactory('listPullRequestReviewThreads')\n\n/** Create the TanStack `replyToReviewComment` server tool. */\nexport const replyToReviewComment = toolFactory('replyToReviewComment')\n\n/** Create the TanStack `resolveReviewThread` server tool. */\nexport const resolveReviewThread = toolFactory('resolveReviewThread')\n\n/** Create the TanStack `requestReviewers` server tool. */\nexport const requestReviewers = toolFactory('requestReviewers')\n\n/** Create the TanStack `getPullRequestContext` server tool. */\nexport const getPullRequestContext = toolFactory('getPullRequestContext')\n\n/** Create the TanStack `getIssueContext` server tool. */\nexport const getIssueContext = toolFactory('getIssueContext')\n\n/** Create the TanStack `listIssues` server tool. */\nexport const listIssues = toolFactory('listIssues')\n\n/** Create the TanStack `getIssue` server tool. */\nexport const getIssue = toolFactory('getIssue')\n\n/** Create the TanStack `listIssueComments` server tool. */\nexport const listIssueComments = toolFactory('listIssueComments')\n\n/** Create the TanStack `createIssue` server tool. */\nexport const createIssue = toolFactory('createIssue')\n\n/** Create the TanStack `addIssueComment` server tool. */\nexport const addIssueComment = toolFactory('addIssueComment')\n\n/** Create the TanStack `updateIssueComment` server tool. */\nexport const updateIssueComment = toolFactory('updateIssueComment')\n\n/** Create the TanStack `deleteIssueComment` server tool. */\nexport const deleteIssueComment = toolFactory('deleteIssueComment')\n\n/** Create the TanStack `closeIssue` server tool. */\nexport const closeIssue = toolFactory('closeIssue')\n\n/** Create the TanStack `updateIssue` server tool. */\nexport const updateIssue = toolFactory('updateIssue')\n\n/** Create the TanStack `listLabels` server tool. */\nexport const listLabels = toolFactory('listLabels')\n\n/** Create the TanStack `addLabels` server tool. */\nexport const addLabels = toolFactory('addLabels')\n\n/** Create the TanStack `removeLabel` server tool. */\nexport const removeLabel = toolFactory('removeLabel')\n\n/** Create the TanStack `createLabel` server tool. */\nexport const createLabel = toolFactory('createLabel')\n\n/** Create the TanStack `updateLabel` server tool. */\nexport const updateLabel = toolFactory('updateLabel')\n\n/** Create the TanStack `deleteLabel` server tool. */\nexport const deleteLabel = toolFactory('deleteLabel')\n\n/** Create the TanStack `addAssignees` server tool. */\nexport const addAssignees = toolFactory('addAssignees')\n\n/** Create the TanStack `removeAssignees` server tool. */\nexport const removeAssignees = toolFactory('removeAssignees')\n\n/** Create the TanStack `listIssueReactions` server tool. */\nexport const listIssueReactions = toolFactory('listIssueReactions')\n\n/** Create the TanStack `addIssueReaction` server tool. */\nexport const addIssueReaction = toolFactory('addIssueReaction')\n\n/** Create the TanStack `listCommentReactions` server tool. */\nexport const listCommentReactions = toolFactory('listCommentReactions')\n\n/** Create the TanStack `addCommentReaction` server tool. */\nexport const addCommentReaction = toolFactory('addCommentReaction')\n\n/** Create the TanStack `listDiscussions` server tool. */\nexport const listDiscussions = toolFactory('listDiscussions')\n\n/** Create the TanStack `getDiscussion` server tool. */\nexport const getDiscussion = toolFactory('getDiscussion')\n\n/** Create the TanStack `addDiscussionComment` server tool. */\nexport const addDiscussionComment = toolFactory('addDiscussionComment')\n\n/** Create the TanStack `listNotifications` server tool. */\nexport const listNotifications = toolFactory('listNotifications')\n\n/** Create the TanStack `markNotificationRead` server tool. */\nexport const markNotificationRead = toolFactory('markNotificationRead')\n\n/** Create the TanStack `searchCode` server tool. */\nexport const searchCode = toolFactory('searchCode')\n\n/** Create the TanStack `searchRepositories` server tool. */\nexport const searchRepositories = toolFactory('searchRepositories')\n\n/** Create the TanStack `searchIssues` server tool. */\nexport const searchIssues = toolFactory('searchIssues')\n\n/** Create the TanStack `listCommits` server tool. */\nexport const listCommits = toolFactory('listCommits')\n\n/** Create the TanStack `getCommit` server tool. */\nexport const getCommit = toolFactory('getCommit')\n\n/** Create the TanStack `getBlame` server tool. */\nexport const getBlame = toolFactory('getBlame')\n\n/** Create the TanStack `compareCommits` server tool. */\nexport const compareCommits = toolFactory('compareCommits')\n\n/** Create the TanStack `listGists` server tool. */\nexport const listGists = toolFactory('listGists')\n\n/** Create the TanStack `getGist` server tool. */\nexport const getGist = toolFactory('getGist')\n\n/** Create the TanStack `listGistComments` server tool. */\nexport const listGistComments = toolFactory('listGistComments')\n\n/** Create the TanStack `createGist` server tool. */\nexport const createGist = toolFactory('createGist')\n\n/** Create the TanStack `updateGist` server tool. */\nexport const updateGist = toolFactory('updateGist')\n\n/** Create the TanStack `deleteGist` server tool. */\nexport const deleteGist = toolFactory('deleteGist')\n\n/** Create the TanStack `createGistComment` server tool. */\nexport const createGistComment = toolFactory('createGistComment')\n\n/** Create the TanStack `listWorkflows` server tool. */\nexport const listWorkflows = toolFactory('listWorkflows')\n\n/** Create the TanStack `listWorkflowRuns` server tool. */\nexport const listWorkflowRuns = toolFactory('listWorkflowRuns')\n\n/** Create the TanStack `getWorkflowRun` server tool. */\nexport const getWorkflowRun = toolFactory('getWorkflowRun')\n\n/** Create the TanStack `listWorkflowJobs` server tool. */\nexport const listWorkflowJobs = toolFactory('listWorkflowJobs')\n\n/** Create the TanStack `getWorkflowJobLogs` server tool. */\nexport const getWorkflowJobLogs = toolFactory('getWorkflowJobLogs')\n\n/** Create the TanStack `triggerWorkflow` server tool. */\nexport const triggerWorkflow = toolFactory('triggerWorkflow')\n\n/** Create the TanStack `cancelWorkflowRun` server tool. */\nexport const cancelWorkflowRun = toolFactory('cancelWorkflowRun')\n\n/** Create the TanStack `rerunWorkflowRun` server tool. */\nexport const rerunWorkflowRun = toolFactory('rerunWorkflowRun')\n\n/** Create the TanStack `listCheckRuns` server tool. */\nexport const listCheckRuns = toolFactory('listCheckRuns')\n\n/** Create the TanStack `getCombinedStatus` server tool. */\nexport const getCombinedStatus = toolFactory('getCombinedStatus')\n\n/** Create the TanStack `getCiFailureContext` server tool. */\nexport const getCiFailureContext = toolFactory('getCiFailureContext')\n\n/** Create the TanStack `listReleases` server tool. */\nexport const listReleases = toolFactory('listReleases')\n\n/** Create the TanStack `getLatestRelease` server tool. */\nexport const getLatestRelease = toolFactory('getLatestRelease')\n\n/** Create the TanStack `getRelease` server tool. */\nexport const getRelease = toolFactory('getRelease')\n\n/** Create the TanStack `getReleaseContext` server tool. */\nexport const getReleaseContext = toolFactory('getReleaseContext')\n\n/** Create the TanStack `createRelease` server tool. */\nexport const createRelease = toolFactory('createRelease')\n\n/** Create the TanStack `updateRelease` server tool. */\nexport const updateRelease = toolFactory('updateRelease')\n\n/** Create the TanStack `deleteRelease` server tool. */\nexport const deleteRelease = toolFactory('deleteRelease')\n"],"mappings":";;;;;;;AA6CA,MAAa,4BAAY,IAAI,QAAqG;AAElI,SAAS,UAAoC,MAAS,OAAqC,SAAqD;CAC9I,MAAM,aAAa,oBAAoB;CACvC,MAAM,eAAe,0BAA0B,KAAK;CACpD,MAAM,cAAc,QAAQ,UAAU,oBAAoB,WAAW,aAAa,QAAQ,OAAO,IAAI,WAAW;CAChH,MAAM,gBAAgB,UAA4C;EAChE,MAAM,OAAO,YAAY,MAAM,KAAK;EACpC,OAAO,QAAQ,UAAU,iBAAiB,MAAM,QAAQ,OAAO,IAAI;CACrE;CACA,MAAM,OAAO,QAAQ,kBAAkB,sBAAsB,IAAI,IAAI,OAAO;CAC5E,MAAM,OAAO,kBAAkB;CAC/B,MAAM,QAAQ,eAAe;EAC3B;EACA,aAAa,QAAQ,eAAe,WAAW;EAC/C;EACA,eAAe,SAAS;CAC1B,CAAC,CAAC,CAAC,OAAO,OAAO,UAAU;EACzB,MAAM,WAAW,aAAa,KAAK;EACnC,MAAM,cAAc,SAAS,uBACzB;GAAE,QAAQ,QAAQ;GAAQ,WAAW,QAAQ;GAAW,WAAW,QAAQ;EAAU,IACrF,SAAS,qBAAqB,EAAE,WAAW,QAAQ,UAAU,IAAI,CAAC;EACtE,OAAO,eAAe,MAAM,KAAK;GAAE,GAAG;GAAU,GAAG;GAAa,OAAO,MAAM,aAAa,gBAAgB,MAAM,QAAQ,CAAC;EAAE,CAAC,CAAC;CAC/H,CAAC;CACD,IAAI,SAAS,QAAQ,UAAU,IAAI,OAAO;EAAE;EAAM;CAAa,CAAC;CAChE,OAAO;AACT;AAEA,SAAgB,YAAsC,MAAS;CAC7D,QAAQ,OAAyB,UAA+B,CAAC,MAA6B,UAAU,MAAM,OAAO,OAAO;AAC9H;;AAGA,SAAgB,kBACd,UAAqD,CAAC,GACqG;CAC3J,MAAM,UAAU,QAAQ,SAAS,mBAAmB,OAAO,QAAQ,WAAW,WAAW,QAAQ,SAAS,CAAC,GAAG,QAAQ,MAAM,CAAC,IAAI;CASjI,OARc,sBAAsB,QAAO,SAAQ,CAAC,WAAW,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAI,SAAQ,UAAU,MAAM,QAAQ,OAAO;EAC3H,SAAS,QAAQ;EACjB,QAAQ,QAAQ;EAChB,WAAW,QAAQ;EACnB,WAAW,QAAQ;EACnB,eAAe,sBAAsB,IAAI,IAAI,oBAAoB,MAAM,QAAQ,mBAAmB,IAAI,IAAI;EAC1G,GAAG,QAAQ,YAAY;CACzB,CAAC,CACU;AACb;;;ACrEA,eAAe,kBAAkB,SAAkC;CACjE,IAAI,QAAQ,SAAS,OAAO,QAAQ;CACpC,MAAM,EAAE,yBAAyB,MAAM,OAAO;CAC9C,OAAO,qBAAqB,wBAAwB;AACtD;AAEA,SAAgB,eAAe,UAA2C;CACxE,MAAM,UAAU,SAAS,UAAS,YAAW,QAAQ,SAAS,MAAM;CACpE,IAAI,CAAC,SAAS,OAAO;CACrB,IAAI,OAAO,QAAQ,YAAY,UAAU,OAAO,QAAQ;CACxD,OAAO,QAAQ,SAAS,SAAQ,SAAQ,KAAK,SAAS,SAAS,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK;AACpG;AAEA,SAAS,iBAAiB,OAAgB,SAAkC,UAAkB,QAAsB;CAClH,QAAQ,eAAe;CACvB,IAAI,iBAAiB,SAAS,MAAM,SAAS,cAAc,MAAM;CACjE,MAAM,QAAQ,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;CACtE,QAAQ,KAAK,kBAAkB,kBAAkB,kBAAkB;EACjE,OAAO,QAAQ,SAAS,SAAA;EACxB;EACA,QAAQ,MAAM;EACd;CACF,CAAC,CAAC;AACJ;AAEA,eAAsB,kBAAkB,MAAsB,OAAgB,UAAmC,UAAmC,CAAC,GAAG,QAAwC;CAC9L,QAAQ,eAAe;CACvB,IAAI;EACF,MAAM,SAAS,MAAM,OAAO;GAC1B,SAAS,MAAM,kBAAkB,OAAO;GACxC,OAAO;IAAE,SAAS,eAAe,QAAQ;IAAG,UAAU;KAAE,MAAM;KAAM,aAAa,oBAAoB,KAAK,CAAC;KAAa;IAAM;GAAE;GAChI,WAAW;IACT,MAAM,MAAM;KAAE,cAAc,cAAc;KAAc,QAAQ,cAAc;IAAS,CAAC;IACxF,QAAQ,QAAQ,eAAe;GACjC;GACA,aAAa;EACf,CAAC;EACD,QAAQ,eAAe;EACvB,OAAO,iBAAiB,OAAO,KAAK,OAAO,OAAO,OAAO,aAAa,OAAO;CAC/E,SAAS,OAAO;EACd,iBAAiB,OAAO,SAAS,uBAAuB,QAAQ,MAAM;EACtE,OAAO;CACT;AACF;AAEA,eAAsB,cAAc,UAAmC,UAAmC,CAAC,GAAG,QAAiD;CAC7J,QAAQ,eAAe;CACvB,IAAI;EACF,MAAM,UAAU,OAAO,KAAK,eAAe;EAC3C,MAAM,SAAS,MAAM,OAAO;GAC1B,SAAS,MAAM,kBAAkB,OAAO;GACxC,OAAO,EAAE,SAAS,eAAe,QAAQ,EAAE;GAC3C,WAAW,OAAO,YAAY,QAAQ,KAAI,WAAU,CAAC,QAAQ,QAAQ;IACnE,cAAc;IACd,UAAU,EAAE,MAAM,KAAK,UAAU;KAAE,SAAS,gBAAgB;KAAS,OAAO,CAAC,GAAG,aAAa,OAAO;IAAE,CAAC,EAAE;GAC3G,CAAC,CAAC,CAAC,CAAC;GACJ,aAAa;EACf,CAAC;EACD,QAAQ,eAAe;EACvB,OAAO,YAAY,OAAO,YAAY,QAAQ,KAAI,WAAU,CAAC,QAAQ,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,GAAqC,OAAO;CAC/I,SAAS,OAAO;EACd,iBAAiB,OAAO,SAAS,kCAAkC,MAAM;EACzE,OAAO,CAAC,eAAe;CACzB;AACF;;;;ACtEA,SAAgB,+BAA+B,EAAE,OAAO,cAAmG;CACzJ,MAAM,UAAU,IAAI,IAAI,MAAM,SAAQ,SAAQ;EAC5C,MAAM,OAAO,UAAU,IAAI,IAAI;EAC/B,OAAO,OAAO,CAAC,CAAC,KAAK,MAAM;GAAE;GAAM,GAAG;EAAK,CAAC,CAAU,IAAI,CAAC;CAC7D,CAAC,CAAC;CACF,MAAM,uBAAO,IAAI,QAAyC;CAC1D,MAAM,SAAS,QAA+B,KAAK,IAAI,GAAG;CAC1D,MAAM,eAAe,KAA4B,YAAgC,UAAkB,UACjG,MAAM,GAAG,CAAC,CAAC,UAAU,MAAK,aAAY,SAAS,eAAe,cAAc,SAAS,aAAa,YAAY,kBAAkB,SAAS,OAAO,KAAK,CAAC;CAExJ,OAAO;EACL,MAAM;EACN,SAAS,KAAK,QAAQ;GACpB,IAAI,IAAI,UAAU,QAAQ,KAAK,IAAI,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;GACzD,OAAO,EACL,OAAO,OAAO,OAAO,KAAI,SAAQ;IAC/B,MAAM,OAAO,QAAQ,IAAI,KAAK,IAAI;IAClC,IAAI,CAAC,QAAQ,SAAS,KAAK,MAAM,OAAO;IACxC,OAAO;KACL,GAAG;KACH,eAAe;KACf,SAAS,OAAO,OAAO,cAAc;MACnC,MAAM,WAAW,KAAK,aAAa,KAAK;MACxC,IAAI,CAAC,YAAY,KAAK,WAAW,YAAY,KAAK,MAAM,QAAQ,CAAC,EAAE,UACjE,MAAM,IAAI,MAAM,eAAe,KAAK,KAAK,iCAAiC;MAE5E,OAAO,KAAK,QAAS,UAAU,SAAS;KAC1C;IACF;GACF,CAAC,EACH;EACF;EACA,sBAAsB,KAAK,aAAa;GACtC,KAAK,MAAM,cAAc,YAAY,IAAI,kBAAkB,GAAG;IAC5D,MAAM,UAAU,WAAW,QAAQ;IACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,QAAQ,QAAQ,GAAG;IAChD,MAAM,GAAG,CAAC,CAAC,UAAU,KAAK;KAAE,GAAG;KAAS,UAAU,WAAW,WAAW,cAAc,WAAW,SAAS;IAAS,CAAC;GACtH;EACF;EACA,MAAM,oBAAoB,KAAK;GAC7B,IAAI,IAAI,UAAU,eAAe;GACjC,MAAM,YAAY,IAAI,IAAI,IAAI,SAAS,QAAO,YAAW,QAAQ,SAAS,MAAM,CAAC,CAAC,KAAI,YAAW,QAAQ,UAAU,CAAC;GACpH,MAAM,QAAQ,IAAI,SAAS,SAAQ,YAAW,QAAQ,SAAS,cAAc,QAAQ,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAO,SAAQ,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC;GACjJ,MAAM,aAAa,CAAC;GACpB,KAAK,MAAM,QAAQ,OAAO;IACxB,MAAM,OAAO,QAAQ,IAAI,KAAK,SAAS,IAAI;IAC3C,IAAI,CAAC,MAAM;IACX,MAAM,QAAQ,KAAK,aAAa,KAAK,MAAM,KAAK,SAAS,SAAS,CAAC;IACnE,IAAI,YAAY,KAAK,KAAK,IAAI,KAAK,MAAM,KAAK,GAAG;IAEjD,IAAI,MADwB,kBAAkB,KAAK,MAAM,OAAO,IAAI,UAAU,YAAY,IAAI,MAAM,GAElG,WAAW,KAAK,mBAAmB,UAAU;KAC3C,KAAK,KAAK;KACV,QAAQ;KACR,SAAS,WAAW,KAAK,KAAK;KAC9B,SAAS;MAAE,YAAY,KAAK;MAAI,UAAU,KAAK;MAAM;KAAM;IAC7D,CAAC,CAAC;SAEF,MAAM,GAAG,CAAC,CAAC,UAAU,KAAK;KAAE,YAAY,KAAK;KAAI,UAAU,KAAK;KAAM;KAAO,UAAU;IAAK,CAAC;GAEjG;GACA,IAAI,WAAW,QAAQ,OAAO,EAAE,WAAW;EAC7C;EACA,iBAAiB,KAAK,MAAM;GAC1B,MAAM,OAAO,QAAQ,IAAI,KAAK,QAAQ;GACtC,IAAI,CAAC,MAAM;GACX,MAAM,WAAW,YAAY,KAAK,KAAK,YAAY,KAAK,UAAU,KAAK,aAAa,KAAK,IAAI,CAAC;GAC9F,IAAI,CAAC,UAAU,OAAO;IAAE,MAAM;IAAQ,QAAQ,EAAE,OAAO,4DAA4D;GAAE;GACrH,IAAI,CAAC,SAAS,UAAU,OAAO;IAAE,MAAM;IAAQ,QAAQ,EAAE,OAAO,qCAAqC;GAAE;EACzG;CACF;AACF;;;;AC9CA,SAAgB,kBAA4C,EAC1D,OAAO,QAAQ,iBAAiB,WAAW,SAAS,QAAQ,WAAW,WACvE,cAAc,wBAAwB,YAAY,aAAa,CAAC,GAAG,GAAG,YACxB;CAC9C,eAAe,QAAQ,MAAiC;EACtD,MAAM,EAAE,QAAQ,UAAU,kBAAkB,GAAG,iBAAiB;EAChE,MAAM,WAAW,oBAAoB,CAAC;GAAE,MAAM;GAAiB,SAAS;EAAQ,CAAC;EACjF,MAAM,gBAAgB,+BAA+B,QAAQ;EAC7D,MAAM,iBAAiB,WAAW,UAAU,SAAS,aAAa,UAAU,SAAS,OAAA,EAAS,MAAM;EACpG,MAAM,WAAW,WAAW,SACxB,iBAAiB,kBAAkB,MAAM,cAAc,eAAe,aAAa,aAAa,mBAAmB,SAAS,gBAAA,EAAkB,MAAM,IACpJ;EACJ,MAAM,iBAAiB,kBAAkB;GAAE;GAAO,QAAQ,iBAAiB,KAAA,IAAY;GAAU;GAAiB;GAAW;GAAS;GAAQ;GAAW;EAAU,CAAC;EACpK,MAAM,YAAY,IAAI,IAAI,cAAc,QAAO,YAAW,QAAQ,SAAS,MAAM,CAAC,CAAC,KAAI,YAAW,QAAQ,UAAU,CAAC;EACrH,MAAM,eAAe,IAAI,IAAI,cAAc,SAAQ,YAAW,QAAQ,SAAS,cAAc,QAAQ,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CACvH,QAAO,SAAQ,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAI,SAAQ,KAAK,SAAS,IAAI,CAAC;EAC1E,MAAM,oCAAoB,IAAI,IAAY,CAAC,GAAG,aAAa,kBAAkB,GAAG,YAAY,CAAC;EAC7F,MAAM,QAAQ,iBAAiB,eAAe,QAAO,SAAQ,kBAAkB,IAAI,KAAK,IAAI,CAAC,IAAI;EACjG,MAAM,eAAkE,OAAO,aAAa,YAAY,aAAa,KAAA,IACjH,WACA,SAAS,WAAW,IAAI,SAAS,KAAK,CAAC,GAAG,QAAQ;EACtD,OAAO;GACL,GAAG;GACH,GAAG;GACH;GACA;GACA,eAAe,CAAC,oBAAoB;IAAE,QAAQ,iBAAiB,KAAA,IAAY;IAAc;IAAc;IAAwB;GAAQ,CAAC,CAAC;GACzI,YAAY,CAAC,+BAA+B;IAAE;IAAO;GAAW,CAAC,GAAG,GAAG,UAAU;GACjF,YAAY,CAAC,kBAAkB;EACjC;CACF;CAEA,OAAO;EACL,MAAM,SAAS,MAAM;GACnB,MAAM,WAAW,MAAM,QAAQ,IAAI;GACnC,IAAI,cAAc;GAClB,MAAM,mBAAmC;IACvC,MAAM;IACN,QAAQ,MAAM,OAAO;KACnB,IAAI,MAAM,SAAS,kBAAkB,MAAM,SAAS,SAAS,aAAa,cAAc;IAC1F;GACF;GACA,MAAM,OAAO,MAAM,KAAK;IAAE,GAAG;IAAU,YAAY,CAAC,kBAAkB,GAAG,SAAS,UAAU;IAAG,QAAQ;GAAM,CAAC;GAC9G,IAAI,aAAa,MAAM,IAAI,MAAM,4FAA4F;GAC7H,OAAO;EACT;EACA,OAAO,OAAO,MAAM;GAClB,OAAO,KAAK;IAAE,GAAG,MAAM,QAAQ,IAAI;IAAG,QAAQ;GAAK,CAAC;EACtD;CACF;AACF;;;;ACxFA,MAAa,gBAAgB,YAAY,eAAe;;AAGxD,MAAa,eAAe,YAAY,cAAc;;AAGtD,MAAa,iBAAiB,YAAY,gBAAgB;;AAG1D,MAAa,oBAAoB,YAAY,mBAAmB;;AAGhE,MAAa,eAAe,YAAY,cAAc;;AAGtD,MAAa,eAAe,YAAY,cAAc;;AAGtD,MAAa,iBAAiB,YAAY,gBAAgB;;AAG1D,MAAa,mBAAmB,YAAY,kBAAkB;;AAG9D,MAAa,qBAAqB,YAAY,oBAAoB;;AAGlE,MAAa,mBAAmB,YAAY,kBAAkB;;AAG9D,MAAa,iBAAiB,YAAY,gBAAgB;;AAG1D,MAAa,oBAAoB,YAAY,mBAAmB;;AAGhE,MAAa,mBAAmB,YAAY,kBAAkB;;AAG9D,MAAa,oBAAoB,YAAY,mBAAmB;;AAGhE,MAAa,wBAAwB,YAAY,uBAAuB;;AAGxE,MAAa,2BAA2B,YAAY,0BAA0B;;AAG9E,MAAa,2BAA2B,YAAY,0BAA0B;;AAG9E,MAAa,uBAAuB,YAAY,sBAAsB;;AAGtE,MAAa,yBAAyB,YAAY,wBAAwB;;AAG1E,MAAa,0BAA0B,YAAY,yBAAyB;;AAG5E,MAAa,+BAA+B,YAAY,8BAA8B;;AAGtF,MAAa,uBAAuB,YAAY,sBAAsB;;AAGtE,MAAa,sBAAsB,YAAY,qBAAqB;;AAGpE,MAAa,mBAAmB,YAAY,kBAAkB;;AAG9D,MAAa,wBAAwB,YAAY,uBAAuB;;AAGxE,MAAa,kBAAkB,YAAY,iBAAiB;;AAG5D,MAAa,aAAa,YAAY,YAAY;;AAGlD,MAAa,WAAW,YAAY,UAAU;;AAG9C,MAAa,oBAAoB,YAAY,mBAAmB;;AAGhE,MAAa,cAAc,YAAY,aAAa;;AAGpD,MAAa,kBAAkB,YAAY,iBAAiB;;AAG5D,MAAa,qBAAqB,YAAY,oBAAoB;;AAGlE,MAAa,qBAAqB,YAAY,oBAAoB;;AAGlE,MAAa,aAAa,YAAY,YAAY;;AAGlD,MAAa,cAAc,YAAY,aAAa;;AAGpD,MAAa,aAAa,YAAY,YAAY;;AAGlD,MAAa,YAAY,YAAY,WAAW;;AAGhD,MAAa,cAAc,YAAY,aAAa;;AAGpD,MAAa,cAAc,YAAY,aAAa;;AAGpD,MAAa,cAAc,YAAY,aAAa;;AAGpD,MAAa,cAAc,YAAY,aAAa;;AAGpD,MAAa,eAAe,YAAY,cAAc;;AAGtD,MAAa,kBAAkB,YAAY,iBAAiB;;AAG5D,MAAa,qBAAqB,YAAY,oBAAoB;;AAGlE,MAAa,mBAAmB,YAAY,kBAAkB;;AAG9D,MAAa,uBAAuB,YAAY,sBAAsB;;AAGtE,MAAa,qBAAqB,YAAY,oBAAoB;;AAGlE,MAAa,kBAAkB,YAAY,iBAAiB;;AAG5D,MAAa,gBAAgB,YAAY,eAAe;;AAGxD,MAAa,uBAAuB,YAAY,sBAAsB;;AAGtE,MAAa,oBAAoB,YAAY,mBAAmB;;AAGhE,MAAa,uBAAuB,YAAY,sBAAsB;;AAGtE,MAAa,aAAa,YAAY,YAAY;;AAGlD,MAAa,qBAAqB,YAAY,oBAAoB;;AAGlE,MAAa,eAAe,YAAY,cAAc;;AAGtD,MAAa,cAAc,YAAY,aAAa;;AAGpD,MAAa,YAAY,YAAY,WAAW;;AAGhD,MAAa,WAAW,YAAY,UAAU;;AAG9C,MAAa,iBAAiB,YAAY,gBAAgB;;AAG1D,MAAa,YAAY,YAAY,WAAW;;AAGhD,MAAa,UAAU,YAAY,SAAS;;AAG5C,MAAa,mBAAmB,YAAY,kBAAkB;;AAG9D,MAAa,aAAa,YAAY,YAAY;;AAGlD,MAAa,aAAa,YAAY,YAAY;;AAGlD,MAAa,aAAa,YAAY,YAAY;;AAGlD,MAAa,oBAAoB,YAAY,mBAAmB;;AAGhE,MAAa,gBAAgB,YAAY,eAAe;;AAGxD,MAAa,mBAAmB,YAAY,kBAAkB;;AAG9D,MAAa,iBAAiB,YAAY,gBAAgB;;AAG1D,MAAa,mBAAmB,YAAY,kBAAkB;;AAG9D,MAAa,qBAAqB,YAAY,oBAAoB;;AAGlE,MAAa,kBAAkB,YAAY,iBAAiB;;AAG5D,MAAa,oBAAoB,YAAY,mBAAmB;;AAGhE,MAAa,mBAAmB,YAAY,kBAAkB;;AAG9D,MAAa,gBAAgB,YAAY,eAAe;;AAGxD,MAAa,oBAAoB,YAAY,mBAAmB;;AAGhE,MAAa,sBAAsB,YAAY,qBAAqB;;AAGpE,MAAa,eAAe,YAAY,cAAc;;AAGtD,MAAa,mBAAmB,YAAY,kBAAkB;;AAG9D,MAAa,aAAa,YAAY,YAAY;;AAGlD,MAAa,oBAAoB,YAAY,mBAAmB;;AAGhE,MAAa,gBAAgB,YAAY,eAAe;;AAGxD,MAAa,gBAAgB,YAAY,eAAe;;AAGxD,MAAa,gBAAgB,YAAY,eAAe"}