@elizaos/plugin-github 2.0.0-alpha.3 → 2.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -3,25 +3,25 @@
3
3
  "sources": ["../index.ts", "../actions/createBranch.ts", "../generated/specs/specs.ts", "../generated/specs/spec-helpers.ts", "../service.ts", "../config.ts", "../error.ts", "../types.ts", "../actions/createComment.ts", "../actions/createIssue.ts", "../actions/createPullRequest.ts", "../actions/mergePullRequest.ts", "../actions/pushCode.ts", "../actions/reviewPullRequest.ts", "../actions/index.ts", "../providers/issueContext.ts", "../providers/repositoryState.ts", "../providers/index.ts"],
4
4
  "sourcesContent": [
5
5
  "import { type IAgentRuntime, logger, type Plugin } from \"@elizaos/core\";\nimport { allActions } from \"./actions\";\nimport { allProviders } from \"./providers\";\nimport { GitHubService } from \"./service\";\n\nconst githubPlugin: Plugin = {\n name: \"github\",\n description:\n \"GitHub integration for repository management, issues, pull requests, and code reviews\",\n services: [GitHubService],\n actions: allActions,\n providers: allProviders,\n\n init: async (_config: Record<string, string>, runtime: IAgentRuntime) => {\n const token = runtime.getSetting(\"GITHUB_API_TOKEN\");\n const owner = runtime.getSetting(\"GITHUB_OWNER\");\n const repo = runtime.getSetting(\"GITHUB_REPO\");\n const branch = runtime.getSetting(\"GITHUB_BRANCH\") ?? \"main\";\n\n logger.info(\n `GitHub Plugin - Token: ${token ? \"configured\" : \"not configured\"}, Owner: ${owner ?? \"not set\"}, Repo: ${repo ?? \"not set\"}, Branch: ${branch}`\n );\n\n if (!token) {\n logger.warn(\"GitHub API Token not provided - plugin will not be functional\");\n }\n },\n};\n\nexport default githubPlugin;\n",
6
- "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { type CreateBranchParams, createBranchSchema, formatZodErrors } from \"../types\";\n\nconst spec = requireActionSpec(\"CREATE_BRANCH\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Create a branch called feature/new-feature from main\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll create the feature/new-feature branch from main.\",\n actions: [\"CREATE_GITHUB_BRANCH\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Make a new branch fix/bug-123 based on develop\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Creating branch fix/bug-123 from develop.\",\n actions: [\"CREATE_GITHUB_BRANCH\"],\n },\n },\n ],\n];\n\nexport const createBranchAction: Action = {\n name: \"CREATE_GITHUB_BRANCH\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return text.includes(\"branch\") || text.includes(\"fork\") || text.includes(\"checkout\");\n },\n\n handler: async (\n runtime: IAgentRuntime,\n _message: Memory,\n state: State | undefined,\n _options: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const params: CreateBranchParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n branchName: (state?.branchName as string) ?? \"\",\n fromRef: (state?.fromRef as string) ?? service.getConfig().branch ?? \"main\",\n };\n\n const validation = createBranchSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid branch parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't create the branch due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const branch = await service.createBranch(params);\n\n logger.info(`Created branch ${branch.name} from ${params.fromRef}`);\n\n if (callback) {\n await callback({\n text: `Created branch \"${branch.name}\" from ${params.fromRef}.\\n\\nLatest commit: ${branch.sha.slice(0, 7)}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to create branch: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to create the branch: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default createBranchAction;\n",
6
+ "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { type CreateBranchParams, createBranchSchema, formatZodErrors } from \"../types\";\n\nconst spec = requireActionSpec(\"CREATE_BRANCH\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Create a branch called feature/new-feature from main\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll create the feature/new-feature branch from main.\",\n actions: [\"CREATE_GITHUB_BRANCH\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Make a new branch fix/bug-123 based on develop\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Creating branch fix/bug-123 from develop.\",\n actions: [\"CREATE_GITHUB_BRANCH\"],\n },\n },\n ],\n];\n\nexport const createBranchAction: Action = {\n name: \"CREATE_GITHUB_BRANCH\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return text.includes(\"branch\") || text.includes(\"fork\") || text.includes(\"checkout\");\n },\n\n handler: async (\n runtime: IAgentRuntime,\n _message: Memory,\n state: State | undefined,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const params: CreateBranchParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n branchName: (state?.branchName as string) ?? \"\",\n fromRef: (state?.fromRef as string) ?? service.getConfig().branch ?? \"main\",\n };\n\n const validation = createBranchSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid branch parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't create the branch due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const branch = await service.createBranch(params);\n\n logger.info(`Created branch ${branch.name} from ${params.fromRef}`);\n\n if (callback) {\n await callback({\n text: `Created branch \"${branch.name}\" from ${params.fromRef}.\\n\\nLatest commit: ${branch.sha.slice(0, 7)}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to create branch: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to create the branch: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default createBranchAction;\n",
7
7
  "/**\n * Auto-generated canonical action/provider/evaluator docs for plugin-github.\n * DO NOT EDIT - Generated from prompts/specs/**.\n */\n\nexport type ActionDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n parameters?: readonly unknown[];\n examples?: readonly (readonly unknown[])[];\n};\n\nexport type ProviderDoc = {\n name: string;\n description: string;\n position?: number;\n dynamic?: boolean;\n};\n\nexport type EvaluatorDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n alwaysRun?: boolean;\n examples?: readonly unknown[];\n};\n\nexport const coreActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"CREATE_GITHUB_BRANCH\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"CREATE_GITHUB_COMMENT\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"CREATE_GITHUB_ISSUE\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"CREATE_GITHUB_PULL_REQUEST\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"MERGE_GITHUB_PULL_REQUEST\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"PUSH_GITHUB_CODE\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"REVIEW_GITHUB_PULL_REQUEST\",\n description: \"\",\n parameters: [],\n },\n ],\n} as const;\nexport const allActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"CREATE_GITHUB_BRANCH\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"CREATE_GITHUB_COMMENT\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"CREATE_GITHUB_ISSUE\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"CREATE_GITHUB_PULL_REQUEST\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"MERGE_GITHUB_PULL_REQUEST\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"PUSH_GITHUB_CODE\",\n description: \"\",\n parameters: [],\n },\n {\n name: \"REVIEW_GITHUB_PULL_REQUEST\",\n description: \"\",\n parameters: [],\n },\n ],\n} as const;\nexport const coreProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"GITHUB_ISSUE_CONTEXT\",\n description:\n \"Provides detailed context about a specific GitHub issue or pull request when referenced\",\n dynamic: true,\n },\n {\n name: \"GITHUB_REPOSITORY_STATE\",\n description: \"Provides context about the current GitHub repository including recent activity\",\n dynamic: true,\n },\n ],\n} as const;\nexport const allProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"GITHUB_ISSUE_CONTEXT\",\n description:\n \"Provides detailed context about a specific GitHub issue or pull request when referenced\",\n dynamic: true,\n },\n {\n name: \"GITHUB_REPOSITORY_STATE\",\n description: \"Provides context about the current GitHub repository including recent activity\",\n dynamic: true,\n },\n ],\n} as const;\nexport const coreEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\nexport const allEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\n\nexport const coreActionDocs: readonly ActionDoc[] = coreActionsSpec.actions;\nexport const allActionDocs: readonly ActionDoc[] = allActionsSpec.actions;\nexport const coreProviderDocs: readonly ProviderDoc[] = coreProvidersSpec.providers;\nexport const allProviderDocs: readonly ProviderDoc[] = allProvidersSpec.providers;\nexport const coreEvaluatorDocs: readonly EvaluatorDoc[] = coreEvaluatorsSpec.evaluators;\nexport const allEvaluatorDocs: readonly EvaluatorDoc[] = allEvaluatorsSpec.evaluators;\n",
8
8
  "/**\n * Helper functions to lookup action/provider/evaluator specs by name.\n * These allow language-specific implementations to import their text content\n * (description, similes, examples) from the centralized specs.\n *\n * DO NOT EDIT the spec data - update prompts/actions.json, prompts/providers.json, prompts/evaluators.json and regenerate.\n */\n\nimport {\n type ActionDoc,\n allActionDocs,\n allEvaluatorDocs,\n allProviderDocs,\n coreActionDocs,\n coreEvaluatorDocs,\n coreProviderDocs,\n type EvaluatorDoc,\n type ProviderDoc,\n} from \"./specs\";\n\n// Build lookup maps for O(1) access\nconst coreActionMap = new Map<string, ActionDoc>(coreActionDocs.map((doc) => [doc.name, doc]));\nconst allActionMap = new Map<string, ActionDoc>(allActionDocs.map((doc) => [doc.name, doc]));\nconst coreProviderMap = new Map<string, ProviderDoc>(\n coreProviderDocs.map((doc) => [doc.name, doc])\n);\nconst allProviderMap = new Map<string, ProviderDoc>(allProviderDocs.map((doc) => [doc.name, doc]));\nconst coreEvaluatorMap = new Map<string, EvaluatorDoc>(\n coreEvaluatorDocs.map((doc) => [doc.name, doc])\n);\nconst allEvaluatorMap = new Map<string, EvaluatorDoc>(\n allEvaluatorDocs.map((doc) => [doc.name, doc])\n);\n\n/**\n * Get an action spec by name from the core specs.\n * @param name - The action name\n * @returns The action spec or undefined if not found\n */\nexport function getActionSpec(name: string): ActionDoc | undefined {\n return coreActionMap.get(name) ?? allActionMap.get(name);\n}\n\n/**\n * Get an action spec by name, throwing if not found.\n * @param name - The action name\n * @returns The action spec\n * @throws Error if the action is not found\n */\nexport function requireActionSpec(name: string): ActionDoc {\n const spec = getActionSpec(name);\n if (!spec) {\n throw new Error(`Action spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get a provider spec by name from the core specs.\n * @param name - The provider name\n * @returns The provider spec or undefined if not found\n */\nexport function getProviderSpec(name: string): ProviderDoc | undefined {\n return coreProviderMap.get(name) ?? allProviderMap.get(name);\n}\n\n/**\n * Get a provider spec by name, throwing if not found.\n * @param name - The provider name\n * @returns The provider spec\n * @throws Error if the provider is not found\n */\nexport function requireProviderSpec(name: string): ProviderDoc {\n const spec = getProviderSpec(name);\n if (!spec) {\n throw new Error(`Provider spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get an evaluator spec by name from the core specs.\n * @param name - The evaluator name\n * @returns The evaluator spec or undefined if not found\n */\nexport function getEvaluatorSpec(name: string): EvaluatorDoc | undefined {\n return coreEvaluatorMap.get(name) ?? allEvaluatorMap.get(name);\n}\n\n/**\n * Get an evaluator spec by name, throwing if not found.\n * @param name - The evaluator name\n * @returns The evaluator spec\n * @throws Error if the evaluator is not found\n */\nexport function requireEvaluatorSpec(name: string): EvaluatorDoc {\n const spec = getEvaluatorSpec(name);\n if (!spec) {\n throw new Error(`Evaluator spec not found: ${name}`);\n }\n return spec;\n}\n\n// Re-export types for convenience\nexport type { ActionDoc, ProviderDoc, EvaluatorDoc };\n",
9
9
  "import { type IAgentRuntime, logger, type Metadata, Service } from \"@elizaos/core\";\nimport { Octokit } from \"@octokit/rest\";\nimport { type GitHubPluginConfig, validateGitHubConfig } from \"./config\";\nimport { FileNotFoundError } from \"./error\";\nimport type {\n CreateBranchParams,\n CreateCommentParams,\n CreateCommitParams,\n CreateIssueParams,\n CreatePullRequestParams,\n CreateReviewParams,\n GetFileParams,\n GitHubBranch,\n GitHubComment,\n GitHubCommit,\n GitHubDirectoryEntry,\n GitHubFileContent,\n GitHubIssue,\n GitHubPullRequest,\n GitHubRepository,\n GitHubReview,\n GitHubUser,\n IssueState,\n IssueStateReason,\n ListIssuesParams,\n ListPullRequestsParams,\n MergeableState,\n MergePullRequestParams,\n PullRequestState,\n RepositoryRef,\n ReviewState,\n UpdateIssueParams,\n UpdatePullRequestParams,\n} from \"./types\";\n\nexport const GITHUB_SERVICE_NAME = \"github\";\n\nexport class GitHubService extends Service {\n static override serviceType = GITHUB_SERVICE_NAME;\n\n private octokit: Octokit | null = null;\n private _config: GitHubPluginConfig | null = null;\n\n declare config?: Metadata;\n\n capabilityDescription =\n \"GitHub integration for repository management, issues, pull requests, and code reviews\";\n\n get name(): string {\n return GITHUB_SERVICE_NAME;\n }\n\n getConfig(): GitHubPluginConfig {\n if (!this._config) {\n throw new Error(\"GitHub service not initialized\");\n }\n return this._config;\n }\n\n private getClient(): Octokit {\n if (!this.octokit) {\n throw new Error(\"GitHub service not initialized\");\n }\n return this.octokit;\n }\n\n async start(runtime: IAgentRuntime): Promise<void> {\n logger.info(\"Starting GitHub service...\");\n\n this._config = validateGitHubConfig(runtime);\n const settings = this._config.toSettings();\n this.config = {\n apiToken: settings.apiToken ?? \"\",\n owner: settings.owner ?? undefined,\n repo: settings.repo ?? undefined,\n branch: settings.branch ?? \"main\",\n webhookSecret: settings.webhookSecret ?? undefined,\n appId: settings.appId ?? undefined,\n appPrivateKey: settings.appPrivateKey ?? undefined,\n installationId: settings.installationId ?? undefined,\n };\n\n this.octokit = new Octokit({\n auth: this._config.apiToken,\n userAgent: \"elizaos-plugin-github/1.0.0\",\n });\n\n const { data: user } = await this.octokit.users.getAuthenticated();\n logger.info(`GitHub service started - authenticated as ${user.login}`);\n }\n\n override async stop(): Promise<void> {\n logger.info(\"Stopping GitHub service...\");\n this.octokit = null;\n this._config = null;\n this.config = undefined;\n logger.info(\"GitHub service stopped\");\n }\n\n async getRepository(params: RepositoryRef): Promise<GitHubRepository> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.repos.get({ owner, repo });\n return this.mapRepository(data);\n }\n\n async listRepositories(\n username?: string,\n options?: {\n type?: \"all\" | \"owner\" | \"member\";\n perPage?: number;\n page?: number;\n }\n ): Promise<GitHubRepository[]> {\n const client = this.getClient();\n\n const { data } = username\n ? await client.repos.listForUser({\n username,\n type: options?.type ?? \"owner\",\n per_page: options?.perPage ?? 30,\n page: options?.page ?? 1,\n })\n : await client.repos.listForAuthenticatedUser({\n type: options?.type ?? \"all\",\n per_page: options?.perPage ?? 30,\n page: options?.page ?? 1,\n });\n\n return data.map((r) => this.mapRepository(r));\n }\n\n async createIssue(params: CreateIssueParams): Promise<GitHubIssue> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.issues.create({\n owner,\n repo,\n title: params.title,\n body: params.body,\n assignees: params.assignees,\n labels: params.labels,\n milestone: params.milestone,\n });\n\n return this.mapIssue(data);\n }\n\n async getIssue(params: RepositoryRef & { issueNumber: number }): Promise<GitHubIssue> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.issues.get({\n owner,\n repo,\n issue_number: params.issueNumber,\n });\n\n return this.mapIssue(data);\n }\n\n async updateIssue(params: UpdateIssueParams): Promise<GitHubIssue> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.issues.update({\n owner,\n repo,\n issue_number: params.issueNumber,\n title: params.title,\n body: params.body,\n state: params.state,\n state_reason: params.stateReason,\n assignees: params.assignees,\n labels: params.labels,\n milestone: params.milestone ?? undefined,\n });\n\n return this.mapIssue(data);\n }\n\n async listIssues(params: ListIssuesParams): Promise<GitHubIssue[]> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.issues.listForRepo({\n owner,\n repo,\n state: params.state ?? \"open\",\n labels: params.labels,\n sort: params.sort ?? \"created\",\n direction: params.direction ?? \"desc\",\n assignee: params.assignee,\n creator: params.creator,\n mentioned: params.mentioned,\n per_page: params.perPage ?? 30,\n page: params.page ?? 1,\n });\n\n return data.filter((issue) => !issue.pull_request).map((issue) => this.mapIssue(issue));\n }\n\n async closeIssue(\n params: RepositoryRef & {\n issueNumber: number;\n reason?: \"completed\" | \"not_planned\";\n }\n ): Promise<GitHubIssue> {\n return this.updateIssue({\n ...params,\n state: \"closed\",\n stateReason: params.reason ?? \"completed\",\n });\n }\n\n async reopenIssue(params: RepositoryRef & { issueNumber: number }): Promise<GitHubIssue> {\n return this.updateIssue({\n ...params,\n state: \"open\",\n stateReason: \"reopened\",\n });\n }\n\n async createPullRequest(params: CreatePullRequestParams): Promise<GitHubPullRequest> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.pulls.create({\n owner,\n repo,\n title: params.title,\n body: params.body,\n head: params.head,\n base: params.base,\n draft: params.draft,\n maintainer_can_modify: params.maintainerCanModify,\n });\n\n return this.mapPullRequest(data);\n }\n\n async getPullRequest(params: RepositoryRef & { pullNumber: number }): Promise<GitHubPullRequest> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.pulls.get({\n owner,\n repo,\n pull_number: params.pullNumber,\n });\n\n return this.mapPullRequest(data);\n }\n\n async updatePullRequest(params: UpdatePullRequestParams): Promise<GitHubPullRequest> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.pulls.update({\n owner,\n repo,\n pull_number: params.pullNumber,\n title: params.title,\n body: params.body,\n state: params.state,\n base: params.base,\n maintainer_can_modify: params.maintainerCanModify,\n });\n\n return this.mapPullRequest(data);\n }\n\n async listPullRequests(params: ListPullRequestsParams): Promise<GitHubPullRequest[]> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.pulls.list({\n owner,\n repo,\n state: params.state ?? \"open\",\n head: params.head,\n base: params.base,\n sort: params.sort ?? \"created\",\n direction: params.direction ?? \"desc\",\n per_page: params.perPage ?? 30,\n page: params.page ?? 1,\n });\n\n return data.map((pr) => this.mapPullRequest(pr));\n }\n\n async mergePullRequest(\n params: MergePullRequestParams\n ): Promise<{ sha: string; merged: boolean; message: string }> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.pulls.merge({\n owner,\n repo,\n pull_number: params.pullNumber,\n commit_title: params.commitTitle,\n commit_message: params.commitMessage,\n merge_method: params.mergeMethod ?? \"merge\",\n sha: params.sha,\n });\n\n return {\n sha: data.sha,\n merged: data.merged,\n message: data.message,\n };\n }\n\n async closePullRequest(\n params: RepositoryRef & { pullNumber: number }\n ): Promise<GitHubPullRequest> {\n return this.updatePullRequest({\n ...params,\n state: \"closed\",\n });\n }\n\n async createReview(params: CreateReviewParams): Promise<GitHubReview> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.pulls.createReview({\n owner,\n repo,\n pull_number: params.pullNumber,\n body: params.body,\n event: params.event,\n commit_id: params.commitId,\n comments: params.comments?.map((c) => ({\n path: c.path,\n line: c.line,\n body: c.body,\n side: c.side,\n start_line: c.startLine,\n start_side: c.startSide,\n })),\n });\n\n return this.mapReview(data);\n }\n\n async listReviews(params: RepositoryRef & { pullNumber: number }): Promise<GitHubReview[]> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.pulls.listReviews({\n owner,\n repo,\n pull_number: params.pullNumber,\n });\n\n return data.map((r) => this.mapReview(r));\n }\n\n async createComment(params: CreateCommentParams): Promise<GitHubComment> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.issues.createComment({\n owner,\n repo,\n issue_number: params.issueNumber,\n body: params.body,\n });\n\n return this.mapComment(data);\n }\n\n async listComments(\n params: RepositoryRef & {\n issueNumber: number;\n perPage?: number;\n page?: number;\n }\n ): Promise<GitHubComment[]> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.issues.listComments({\n owner,\n repo,\n issue_number: params.issueNumber,\n per_page: params.perPage ?? 30,\n page: params.page ?? 1,\n });\n\n return data.map((c) => this.mapComment(c));\n }\n\n async createBranch(params: CreateBranchParams): Promise<GitHubBranch> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n let sha: string;\n\n if (params.fromRef.match(/^[0-9a-f]{40}$/i)) {\n sha = params.fromRef;\n } else {\n const { data: refData } = await client.git.getRef({\n owner,\n repo,\n ref: `heads/${params.fromRef}`,\n });\n sha = refData.object.sha;\n }\n\n await client.git.createRef({\n owner,\n repo,\n ref: `refs/heads/${params.branchName}`,\n sha,\n });\n\n return {\n name: params.branchName,\n sha,\n protected: false,\n };\n }\n\n async deleteBranch(params: RepositoryRef & { branchName: string }): Promise<void> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n await client.git.deleteRef({\n owner,\n repo,\n ref: `heads/${params.branchName}`,\n });\n }\n\n async listBranches(\n params: RepositoryRef & { perPage?: number; page?: number }\n ): Promise<GitHubBranch[]> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.repos.listBranches({\n owner,\n repo,\n per_page: params.perPage ?? 30,\n page: params.page ?? 1,\n });\n\n return data.map((b) => ({\n name: b.name,\n sha: b.commit.sha,\n protected: b.protected,\n }));\n }\n\n async getFile(params: GetFileParams): Promise<GitHubFileContent> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.repos.getContent({\n owner,\n repo,\n path: params.path,\n ref: params.branch,\n });\n\n if (Array.isArray(data)) {\n throw new FileNotFoundError(`${params.path} is a directory, not a file`, owner, repo);\n }\n\n if (data.type !== \"file\") {\n throw new FileNotFoundError(`${params.path} is not a file`, owner, repo);\n }\n\n let content = \"\";\n if (\"content\" in data && data.content) {\n content = Buffer.from(data.content, \"base64\").toString(\"utf-8\");\n }\n\n return {\n name: data.name,\n path: data.path,\n content,\n sha: data.sha,\n size: data.size,\n type: data.type as \"file\",\n encoding: \"encoding\" in data ? (data.encoding ?? \"base64\") : \"base64\",\n htmlUrl: data.html_url ?? \"\",\n downloadUrl: data.download_url,\n };\n }\n\n async listDirectory(params: GetFileParams): Promise<GitHubDirectoryEntry[]> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n const { data } = await client.repos.getContent({\n owner,\n repo,\n path: params.path,\n ref: params.branch,\n });\n\n if (!Array.isArray(data)) {\n throw new FileNotFoundError(`${params.path} is a file, not a directory`, owner, repo);\n }\n\n return data.map((entry) => ({\n name: entry.name,\n path: entry.path,\n sha: entry.sha,\n size: entry.size,\n type: entry.type as \"file\" | \"dir\" | \"symlink\" | \"submodule\",\n htmlUrl: entry.html_url ?? \"\",\n downloadUrl: entry.download_url,\n }));\n }\n\n async createCommit(params: CreateCommitParams): Promise<GitHubCommit> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n\n let parentSha = params.parentSha;\n if (!parentSha) {\n const { data: refData } = await client.git.getRef({\n owner,\n repo,\n ref: `heads/${params.branch}`,\n });\n parentSha = refData.object.sha;\n }\n\n const { data: parentCommit } = await client.git.getCommit({\n owner,\n repo,\n commit_sha: parentSha,\n });\n\n const treeItems: Array<{\n path: string;\n mode: \"100644\" | \"100755\" | \"040000\" | \"160000\" | \"120000\";\n type: \"blob\" | \"tree\" | \"commit\";\n sha?: string;\n }> = [];\n\n for (const file of params.files) {\n if (file.operation === \"delete\") {\n continue;\n }\n\n const { data: blob } = await client.git.createBlob({\n owner,\n repo,\n content: file.content,\n encoding: file.encoding ?? \"utf-8\",\n });\n\n treeItems.push({\n path: file.path,\n mode: \"100644\",\n type: \"blob\",\n sha: blob.sha,\n });\n }\n\n const { data: newTree } = await client.git.createTree({\n owner,\n repo,\n base_tree: parentCommit.tree.sha,\n tree: treeItems,\n });\n\n const { data: commit } = await client.git.createCommit({\n owner,\n repo,\n message: params.message,\n tree: newTree.sha,\n parents: [parentSha],\n author: params.authorName\n ? {\n name: params.authorName,\n email: params.authorEmail ?? `${params.authorName}@users.noreply.github.com`,\n }\n : undefined,\n });\n\n await client.git.updateRef({\n owner,\n repo,\n ref: `heads/${params.branch}`,\n sha: commit.sha,\n });\n\n return {\n sha: commit.sha,\n message: commit.message,\n author: {\n name: commit.author?.name ?? \"Unknown\",\n email: commit.author?.email ?? \"\",\n date: commit.author?.date ?? new Date().toISOString(),\n },\n committer: {\n name: commit.committer?.name ?? \"Unknown\",\n email: commit.committer?.email ?? \"\",\n date: commit.committer?.date ?? new Date().toISOString(),\n },\n timestamp: commit.author?.date ?? new Date().toISOString(),\n htmlUrl: commit.html_url,\n parents: commit.parents.map((p) => p.sha),\n };\n }\n\n async listCommits(\n params: RepositoryRef & {\n branch?: string;\n path?: string;\n perPage?: number;\n page?: number;\n }\n ): Promise<GitHubCommit[]> {\n const client = this.getClient();\n const { owner, repo } = this.resolveRepoRef(params);\n const branch = params.branch ?? this._config?.branch ?? \"main\";\n\n const { data } = await client.repos.listCommits({\n owner,\n repo,\n sha: branch,\n path: params.path,\n per_page: params.perPage ?? 30,\n page: params.page ?? 1,\n });\n\n return data.map((c) => ({\n sha: c.sha,\n message: c.commit.message,\n author: {\n name: c.commit.author?.name ?? \"Unknown\",\n email: c.commit.author?.email ?? \"\",\n date: c.commit.author?.date ?? \"\",\n },\n committer: {\n name: c.commit.committer?.name ?? \"Unknown\",\n email: c.commit.committer?.email ?? \"\",\n date: c.commit.committer?.date ?? \"\",\n },\n timestamp: c.commit.author?.date ?? \"\",\n htmlUrl: c.html_url,\n parents: c.parents.map((p) => p.sha),\n }));\n }\n\n async getAuthenticatedUser(): Promise<GitHubUser> {\n const client = this.getClient();\n\n const { data } = await client.users.getAuthenticated();\n return this.mapUser(data);\n }\n\n async getUser(username: string): Promise<GitHubUser> {\n const client = this.getClient();\n\n const { data } = await client.users.getByUsername({ username });\n return this.mapUser(data);\n }\n\n private resolveRepoRef(params: Partial<RepositoryRef>): {\n owner: string;\n repo: string;\n } {\n const owner = params.owner ?? this._config?.owner;\n const repo = params.repo ?? this._config?.repo;\n\n if (!owner || !repo) {\n throw new Error(\n \"Repository owner and name are required. Configure defaults or provide them explicitly.\"\n );\n }\n\n return { owner, repo };\n }\n\n private mapRepository(data: unknown): GitHubRepository {\n const d = data as Record<string, unknown>;\n const license = d.license as Record<string, unknown> | null;\n return {\n id: d.id as number,\n name: d.name as string,\n fullName: d.full_name as string,\n owner: this.mapUser(d.owner),\n description: d.description as string | null,\n private: d.private as boolean,\n fork: d.fork as boolean,\n defaultBranch: d.default_branch as string,\n language: d.language as string | null,\n stargazersCount: d.stargazers_count as number,\n forksCount: d.forks_count as number,\n openIssuesCount: d.open_issues_count as number,\n watchersCount: d.watchers_count as number,\n htmlUrl: d.html_url as string,\n cloneUrl: d.clone_url as string,\n sshUrl: d.ssh_url as string,\n createdAt: d.created_at as string,\n updatedAt: d.updated_at as string,\n pushedAt: d.pushed_at as string,\n topics: (d.topics as string[]) ?? [],\n license: license\n ? {\n key: license.key as string,\n name: license.name as string,\n spdxId: license.spdx_id as string,\n url: license.url as string | null,\n }\n : null,\n };\n }\n\n private mapUser(data: unknown): GitHubUser {\n const d = data as Record<string, unknown>;\n return {\n id: d.id as number,\n login: d.login as string,\n name: (d.name as string | null) ?? null,\n avatarUrl: d.avatar_url as string,\n htmlUrl: d.html_url as string,\n type: d.type as \"User\" | \"Organization\" | \"Bot\",\n };\n }\n\n private mapIssue(data: unknown): GitHubIssue {\n const d = data as Record<string, unknown>;\n return {\n number: d.number as number,\n title: d.title as string,\n body: d.body as string | null,\n state: d.state as IssueState,\n stateReason: (d.state_reason as IssueStateReason | null) ?? null,\n user: this.mapUser(d.user),\n assignees: ((d.assignees as unknown[]) ?? []).map((a: unknown) => this.mapUser(a)),\n labels: ((d.labels as unknown[]) ?? []).map((l: unknown) => this.mapLabel(l)),\n milestone: d.milestone ? this.mapMilestone(d.milestone) : null,\n createdAt: d.created_at as string,\n updatedAt: d.updated_at as string,\n closedAt: d.closed_at as string | null,\n htmlUrl: d.html_url as string,\n comments: d.comments as number,\n isPullRequest: !!d.pull_request,\n };\n }\n\n private mapLabel(data: unknown): {\n id: number;\n name: string;\n color: string;\n description: string | null;\n default: boolean;\n } {\n if (typeof data === \"string\") {\n return {\n id: 0,\n name: data,\n color: \"\",\n description: null,\n default: false,\n };\n }\n const d = data as Record<string, unknown>;\n return {\n id: d.id as number,\n name: d.name as string,\n color: d.color as string,\n description: d.description as string | null,\n default: d.default as boolean,\n };\n }\n\n private mapMilestone(data: unknown): {\n number: number;\n title: string;\n description: string | null;\n state: \"open\" | \"closed\";\n dueOn: string | null;\n createdAt: string;\n updatedAt: string;\n closedAt: string | null;\n openIssues: number;\n closedIssues: number;\n } {\n const d = data as Record<string, unknown>;\n return {\n number: d.number as number,\n title: d.title as string,\n description: d.description as string | null,\n state: d.state as \"open\" | \"closed\",\n dueOn: d.due_on as string | null,\n createdAt: d.created_at as string,\n updatedAt: d.updated_at as string,\n closedAt: d.closed_at as string | null,\n openIssues: d.open_issues as number,\n closedIssues: d.closed_issues as number,\n };\n }\n\n private mapPullRequest(data: unknown): GitHubPullRequest {\n const d = data as Record<string, unknown>;\n const head = d.head as Record<string, unknown>;\n const base = d.base as Record<string, unknown>;\n const headRepo = head.repo as Record<string, unknown> | null;\n const baseRepo = base.repo as Record<string, unknown> | null;\n const headRepoOwner = headRepo?.owner as Record<string, unknown> | undefined;\n const baseRepoOwner = baseRepo?.owner as Record<string, unknown> | undefined;\n return {\n number: d.number as number,\n title: d.title as string,\n body: d.body as string | null,\n state: d.state as PullRequestState,\n draft: (d.draft as boolean) ?? false,\n merged: (d.merged as boolean) ?? false,\n mergeable: d.mergeable as boolean | null,\n mergeableState: (d.mergeable_state as MergeableState) ?? \"unknown\",\n user: this.mapUser(d.user),\n head: {\n ref: head.ref as string,\n label: head.label as string,\n sha: head.sha as string,\n repo: headRepo\n ? { owner: headRepoOwner?.login as string, repo: headRepo.name as string }\n : null,\n },\n base: {\n ref: base.ref as string,\n label: base.label as string,\n sha: base.sha as string,\n repo: baseRepo\n ? { owner: baseRepoOwner?.login as string, repo: baseRepo.name as string }\n : null,\n },\n assignees: ((d.assignees as unknown[]) ?? []).map((a: unknown) => this.mapUser(a)),\n requestedReviewers: ((d.requested_reviewers as unknown[]) ?? []).map((r: unknown) =>\n this.mapUser(r)\n ),\n labels: ((d.labels as unknown[]) ?? []).map((l: unknown) => this.mapLabel(l)),\n milestone: d.milestone ? this.mapMilestone(d.milestone) : null,\n createdAt: d.created_at as string,\n updatedAt: d.updated_at as string,\n closedAt: d.closed_at as string | null,\n mergedAt: d.merged_at as string | null,\n htmlUrl: d.html_url as string,\n commits: (d.commits as number) ?? 0,\n additions: (d.additions as number) ?? 0,\n deletions: (d.deletions as number) ?? 0,\n changedFiles: (d.changed_files as number) ?? 0,\n };\n }\n\n private mapReview(data: unknown): GitHubReview {\n const d = data as Record<string, unknown>;\n return {\n id: d.id as number,\n user: this.mapUser(d.user),\n body: d.body as string | null,\n state: d.state as ReviewState,\n commitId: d.commit_id as string,\n htmlUrl: d.html_url as string,\n submittedAt: d.submitted_at as string,\n };\n }\n\n private mapComment(data: unknown): GitHubComment {\n const d = data as Record<string, unknown>;\n return {\n id: d.id as number,\n body: d.body as string,\n user: this.mapUser(d.user),\n createdAt: d.created_at as string,\n updatedAt: d.updated_at as string,\n htmlUrl: d.html_url as string,\n };\n }\n}\n",
10
10
  "import type { IAgentRuntime } from \"@elizaos/core\";\nimport { z } from \"zod\";\nimport { ConfigError, MissingSettingError } from \"./error\";\nimport { formatZodErrors, type GitHubSettings } from \"./types\";\n\nconst configSchema = z.object({\n apiToken: z.string().min(1, \"API token is required\"),\n owner: z.string().optional(),\n repo: z.string().optional(),\n branch: z.string().default(\"main\"),\n webhookSecret: z.string().optional(),\n appId: z.string().optional(),\n appPrivateKey: z.string().optional(),\n installationId: z.string().optional(),\n});\n\nexport type GitHubConfig = z.infer<typeof configSchema>;\n\nexport class GitHubPluginConfig {\n public readonly apiToken: string;\n public readonly owner: string | undefined;\n public readonly repo: string | undefined;\n public readonly branch: string;\n public readonly webhookSecret: string | undefined;\n public readonly appId: string | undefined;\n public readonly appPrivateKey: string | undefined;\n public readonly installationId: string | undefined;\n\n private constructor(config: GitHubConfig) {\n this.apiToken = config.apiToken;\n this.owner = config.owner;\n this.repo = config.repo;\n this.branch = config.branch;\n this.webhookSecret = config.webhookSecret;\n this.appId = config.appId;\n this.appPrivateKey = config.appPrivateKey;\n this.installationId = config.installationId;\n }\n\n static fromRuntime(runtime: IAgentRuntime): GitHubPluginConfig {\n const apiToken = runtime.getSetting(\"GITHUB_API_TOKEN\");\n\n if (!apiToken) {\n throw new MissingSettingError(\"GITHUB_API_TOKEN\");\n }\n\n const rawConfig = {\n apiToken,\n owner: runtime.getSetting(\"GITHUB_OWNER\") ?? undefined,\n repo: runtime.getSetting(\"GITHUB_REPO\") ?? undefined,\n branch: runtime.getSetting(\"GITHUB_BRANCH\") ?? \"main\",\n webhookSecret: runtime.getSetting(\"GITHUB_WEBHOOK_SECRET\") ?? undefined,\n appId: runtime.getSetting(\"GITHUB_APP_ID\") ?? undefined,\n appPrivateKey: runtime.getSetting(\"GITHUB_APP_PRIVATE_KEY\") ?? undefined,\n installationId: runtime.getSetting(\"GITHUB_INSTALLATION_ID\") ?? undefined,\n };\n\n const result = configSchema.safeParse(rawConfig);\n\n if (!result.success) {\n throw new ConfigError(formatZodErrors(result.error));\n }\n\n return new GitHubPluginConfig(result.data);\n }\n\n static fromSettings(settings: GitHubSettings): GitHubPluginConfig {\n const result = configSchema.safeParse({\n ...settings,\n branch: settings.branch ?? \"main\",\n });\n\n if (!result.success) {\n throw new ConfigError(formatZodErrors(result.error));\n }\n\n return new GitHubPluginConfig(result.data);\n }\n\n static fromEnv(): GitHubPluginConfig {\n const apiToken = process.env.GITHUB_API_TOKEN;\n\n if (!apiToken) {\n throw new MissingSettingError(\"GITHUB_API_TOKEN\");\n }\n\n const rawConfig = {\n apiToken,\n owner: process.env.GITHUB_OWNER,\n repo: process.env.GITHUB_REPO,\n branch: process.env.GITHUB_BRANCH ?? \"main\",\n webhookSecret: process.env.GITHUB_WEBHOOK_SECRET,\n appId: process.env.GITHUB_APP_ID,\n appPrivateKey: process.env.GITHUB_APP_PRIVATE_KEY,\n installationId: process.env.GITHUB_INSTALLATION_ID,\n };\n\n const result = configSchema.safeParse(rawConfig);\n\n if (!result.success) {\n throw new ConfigError(formatZodErrors(result.error));\n }\n\n return new GitHubPluginConfig(result.data);\n }\n\n getRepositoryRef(owner?: string, repo?: string): { owner: string; repo: string } {\n const resolvedOwner = owner ?? this.owner;\n const resolvedRepo = repo ?? this.repo;\n\n if (!resolvedOwner) {\n throw new MissingSettingError(\"owner (GITHUB_OWNER)\");\n }\n\n if (!resolvedRepo) {\n throw new MissingSettingError(\"repo (GITHUB_REPO)\");\n }\n\n return { owner: resolvedOwner, repo: resolvedRepo };\n }\n\n hasAppAuth(): boolean {\n return !!(this.appId && this.appPrivateKey);\n }\n\n validate(): void {\n if (\n !this.apiToken.startsWith(\"ghp_\") &&\n !this.apiToken.startsWith(\"gho_\") &&\n !this.apiToken.startsWith(\"ghu_\") &&\n !this.apiToken.startsWith(\"ghs_\") &&\n !this.apiToken.startsWith(\"ghr_\") &&\n !this.apiToken.startsWith(\"github_pat_\")\n ) {\n console.warn(\"GitHub API token format not recognized. Ensure it is a valid token.\");\n }\n\n if (this.hasAppAuth() && !this.installationId) {\n throw new ConfigError(\n \"GITHUB_INSTALLATION_ID is required when using GitHub App authentication\"\n );\n }\n }\n\n toSettings(): GitHubSettings {\n return {\n apiToken: this.apiToken,\n owner: this.owner,\n repo: this.repo,\n branch: this.branch,\n webhookSecret: this.webhookSecret,\n appId: this.appId,\n appPrivateKey: this.appPrivateKey,\n installationId: this.installationId,\n };\n }\n}\n\nexport function validateGitHubConfig(runtime: IAgentRuntime): GitHubPluginConfig {\n const config = GitHubPluginConfig.fromRuntime(runtime);\n config.validate();\n return config;\n}\n",
11
11
  "export class GitHubError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"GitHubError\";\n Object.setPrototypeOf(this, GitHubError.prototype);\n }\n\n isRetryable(): boolean {\n return false;\n }\n\n retryAfterMs(): number | null {\n return null;\n }\n}\n\nexport class ClientNotInitializedError extends GitHubError {\n constructor() {\n super(\"GitHub client not initialized - ensure GITHUB_API_TOKEN is configured\");\n this.name = \"ClientNotInitializedError\";\n Object.setPrototypeOf(this, ClientNotInitializedError.prototype);\n }\n}\n\nexport class ConfigError extends GitHubError {\n constructor(message: string) {\n super(`Configuration error: ${message}`);\n this.name = \"ConfigError\";\n Object.setPrototypeOf(this, ConfigError.prototype);\n }\n}\n\nexport class MissingSettingError extends GitHubError {\n public readonly settingName: string;\n\n constructor(settingName: string) {\n super(`Missing required setting: ${settingName}`);\n this.name = \"MissingSettingError\";\n this.settingName = settingName;\n Object.setPrototypeOf(this, MissingSettingError.prototype);\n }\n}\n\nexport class InvalidArgumentError extends GitHubError {\n constructor(message: string) {\n super(`Invalid argument: ${message}`);\n this.name = \"InvalidArgumentError\";\n Object.setPrototypeOf(this, InvalidArgumentError.prototype);\n }\n}\n\nexport class RepositoryNotFoundError extends GitHubError {\n public readonly owner: string;\n public readonly repo: string;\n\n constructor(owner: string, repo: string) {\n super(`Repository not found: ${owner}/${repo}`);\n this.name = \"RepositoryNotFoundError\";\n this.owner = owner;\n this.repo = repo;\n Object.setPrototypeOf(this, RepositoryNotFoundError.prototype);\n }\n}\n\nexport class BranchNotFoundError extends GitHubError {\n public readonly branch: string;\n\n constructor(branch: string, owner: string, repo: string) {\n super(`Branch not found: ${branch} in ${owner}/${repo}`);\n this.name = \"BranchNotFoundError\";\n this.branch = branch;\n Object.setPrototypeOf(this, BranchNotFoundError.prototype);\n }\n}\n\nexport class FileNotFoundError extends GitHubError {\n public readonly path: string;\n\n constructor(path: string, owner: string, repo: string) {\n super(`File not found: ${path} in ${owner}/${repo}`);\n this.name = \"FileNotFoundError\";\n this.path = path;\n Object.setPrototypeOf(this, FileNotFoundError.prototype);\n }\n}\n\nexport class IssueNotFoundError extends GitHubError {\n public readonly issueNumber: number;\n\n constructor(issueNumber: number, owner: string, repo: string) {\n super(`Issue #${issueNumber} not found in ${owner}/${repo}`);\n this.name = \"IssueNotFoundError\";\n this.issueNumber = issueNumber;\n Object.setPrototypeOf(this, IssueNotFoundError.prototype);\n }\n}\n\nexport class PullRequestNotFoundError extends GitHubError {\n public readonly pullNumber: number;\n\n constructor(pullNumber: number, owner: string, repo: string) {\n super(`Pull request #${pullNumber} not found in ${owner}/${repo}`);\n this.name = \"PullRequestNotFoundError\";\n this.pullNumber = pullNumber;\n Object.setPrototypeOf(this, PullRequestNotFoundError.prototype);\n }\n}\n\nexport class PermissionDeniedError extends GitHubError {\n constructor(action: string) {\n super(`Permission denied: ${action}`);\n this.name = \"PermissionDeniedError\";\n Object.setPrototypeOf(this, PermissionDeniedError.prototype);\n }\n}\n\nexport class RateLimitedError extends GitHubError {\n private readonly _retryAfterMs: number;\n public readonly remaining: number;\n public readonly resetAt: Date;\n\n constructor(retryAfterMs: number, remaining: number, resetAt: Date) {\n super(`Rate limited by GitHub API, retry after ${Math.ceil(retryAfterMs / 1000)}s`);\n this.name = \"RateLimitedError\";\n this._retryAfterMs = retryAfterMs;\n this.remaining = remaining;\n this.resetAt = resetAt;\n Object.setPrototypeOf(this, RateLimitedError.prototype);\n }\n\n override isRetryable(): boolean {\n return true;\n }\n\n override retryAfterMs(): number {\n return this._retryAfterMs;\n }\n}\n\nexport class SecondaryRateLimitError extends GitHubError {\n private readonly _retryAfterMs: number;\n\n constructor(retryAfterMs: number) {\n super(`Secondary rate limit hit, retry after ${Math.ceil(retryAfterMs / 1000)}s`);\n this.name = \"SecondaryRateLimitError\";\n this._retryAfterMs = retryAfterMs;\n Object.setPrototypeOf(this, SecondaryRateLimitError.prototype);\n }\n\n override isRetryable(): boolean {\n return true;\n }\n\n override retryAfterMs(): number {\n return this._retryAfterMs;\n }\n}\n\nexport class TimeoutError extends GitHubError {\n private readonly _timeoutMs: number;\n\n constructor(timeoutMs: number, operation: string) {\n super(`Operation timed out after ${timeoutMs}ms: ${operation}`);\n this.name = \"TimeoutError\";\n this._timeoutMs = timeoutMs;\n Object.setPrototypeOf(this, TimeoutError.prototype);\n }\n\n override isRetryable(): boolean {\n return true;\n }\n\n override retryAfterMs(): number {\n return Math.floor(this._timeoutMs / 2);\n }\n}\n\nexport class MergeConflictError extends GitHubError {\n public readonly pullNumber: number;\n\n constructor(pullNumber: number, owner: string, repo: string) {\n super(`Merge conflict in pull request #${pullNumber} in ${owner}/${repo}`);\n this.name = \"MergeConflictError\";\n this.pullNumber = pullNumber;\n Object.setPrototypeOf(this, MergeConflictError.prototype);\n }\n}\n\nexport class BranchExistsError extends GitHubError {\n public readonly branch: string;\n\n constructor(branch: string, owner: string, repo: string) {\n super(`Branch already exists: ${branch} in ${owner}/${repo}`);\n this.name = \"BranchExistsError\";\n this.branch = branch;\n Object.setPrototypeOf(this, BranchExistsError.prototype);\n }\n}\n\nexport class ValidationError extends GitHubError {\n public readonly field: string;\n\n constructor(field: string, reason: string) {\n super(`Validation failed for ${field}: ${reason}`);\n this.name = \"ValidationError\";\n this.field = field;\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport class GitHubApiError extends GitHubError {\n public readonly status: number;\n public readonly code: string | null;\n public readonly documentationUrl: string | null;\n\n constructor(\n status: number,\n message: string,\n code: string | null = null,\n documentationUrl: string | null = null\n ) {\n super(`GitHub API error (${status}): ${message}`);\n this.name = \"GitHubApiError\";\n this.status = status;\n this.code = code;\n this.documentationUrl = documentationUrl;\n Object.setPrototypeOf(this, GitHubApiError.prototype);\n }\n\n override isRetryable(): boolean {\n return this.status >= 500;\n }\n}\n\nexport class NetworkError extends GitHubError {\n constructor(message: string) {\n super(`Network error: ${message}`);\n this.name = \"NetworkError\";\n Object.setPrototypeOf(this, NetworkError.prototype);\n }\n\n override isRetryable(): boolean {\n return true;\n }\n\n override retryAfterMs(): number {\n return 1000;\n }\n}\n\nexport class GitOperationError extends GitHubError {\n public readonly operation: string;\n\n constructor(operation: string, reason: string) {\n super(`Git operation failed (${operation}): ${reason}`);\n this.name = \"GitOperationError\";\n this.operation = operation;\n Object.setPrototypeOf(this, GitOperationError.prototype);\n }\n}\n\nexport class WebhookVerificationError extends GitHubError {\n constructor(reason: string) {\n super(`Webhook verification failed: ${reason}`);\n this.name = \"WebhookVerificationError\";\n Object.setPrototypeOf(this, WebhookVerificationError.prototype);\n }\n}\n\ninterface OctokitErrorResponse {\n status: number;\n message?: string;\n response?: {\n headers?: {\n \"retry-after\"?: string;\n \"x-ratelimit-remaining\"?: string;\n \"x-ratelimit-reset\"?: string;\n };\n data?: {\n message?: string;\n errors?: Array<{ code?: string; field?: string; message?: string }>;\n documentation_url?: string;\n };\n };\n}\n\nexport function mapOctokitError(error: unknown, owner: string, repo: string): GitHubError {\n if (error && typeof error === \"object\" && \"status\" in error && typeof error.status === \"number\") {\n const err = error as OctokitErrorResponse;\n\n const message = err.response?.data?.message ?? err.message ?? \"Unknown error\";\n const docUrl = err.response?.data?.documentation_url ?? null;\n\n switch (err.status) {\n case 401:\n return new PermissionDeniedError(\"Invalid or missing authentication token\");\n\n case 403: {\n const remaining = err.response?.headers?.[\"x-ratelimit-remaining\"];\n const reset = err.response?.headers?.[\"x-ratelimit-reset\"];\n\n if (remaining === \"0\" && reset) {\n const resetTime = new Date(Number(reset) * 1000);\n const retryAfter = resetTime.getTime() - Date.now();\n return new RateLimitedError(Math.max(retryAfter, 0), 0, resetTime);\n }\n\n const retryAfter = err.response?.headers?.[\"retry-after\"];\n if (retryAfter) {\n return new SecondaryRateLimitError(Number(retryAfter) * 1000);\n }\n\n return new PermissionDeniedError(message);\n }\n\n case 404:\n if (message.toLowerCase().includes(\"branch\")) {\n return new BranchNotFoundError(\"\", owner, repo);\n }\n if (message.toLowerCase().includes(\"issue\")) {\n return new IssueNotFoundError(0, owner, repo);\n }\n if (message.toLowerCase().includes(\"pull\")) {\n return new PullRequestNotFoundError(0, owner, repo);\n }\n return new RepositoryNotFoundError(owner, repo);\n\n case 409:\n if (message.toLowerCase().includes(\"merge\")) {\n return new MergeConflictError(0, owner, repo);\n }\n if (message.toLowerCase().includes(\"already exists\")) {\n return new BranchExistsError(\"\", owner, repo);\n }\n return new GitHubApiError(err.status, message, null, docUrl);\n\n case 422: {\n const errors = err.response?.data?.errors ?? [];\n if (errors.length > 0) {\n const firstError = errors[0];\n return new ValidationError(firstError?.field ?? \"\", firstError?.message ?? message);\n }\n return new ValidationError(\"\", message);\n }\n\n case 429: {\n const retryAfter = err.response?.headers?.[\"retry-after\"];\n return new SecondaryRateLimitError(retryAfter ? Number(retryAfter) * 1000 : 60000);\n }\n\n default:\n return new GitHubApiError(err.status, message, null, docUrl);\n }\n }\n\n if (\n error instanceof Error &&\n (error.message.includes(\"ECONNREFUSED\") ||\n error.message.includes(\"ETIMEDOUT\") ||\n error.message.includes(\"ENOTFOUND\") ||\n error.message.includes(\"fetch failed\"))\n ) {\n return new NetworkError(error.message);\n }\n\n if (error instanceof Error) {\n return new GitHubError(error.message);\n }\n\n return new GitHubError(String(error));\n}\n",
12
12
  "import { z } from \"zod\";\n\nexport interface RepositoryRef {\n /** Repository owner (username or organization) */\n owner: string;\n /** Repository name */\n repo: string;\n}\n\nexport interface FileRef extends RepositoryRef {\n /** File path relative to repository root */\n path: string;\n /** Branch name */\n branch?: string;\n}\n\nexport interface FileChange {\n /** File path relative to repository root */\n path: string;\n /** File content (string for text, base64 for binary) */\n content: string;\n /** Optional encoding (defaults to utf-8) */\n encoding?: \"utf-8\" | \"base64\";\n /** Operation type */\n operation?: \"add\" | \"modify\" | \"delete\";\n}\n\nexport type IssueState = \"open\" | \"closed\";\n\nexport type IssueStateReason = \"completed\" | \"not_planned\" | \"reopened\";\n\nexport interface GitHubIssue {\n /** Issue number */\n number: number;\n /** Issue title */\n title: string;\n /** Issue body/description */\n body: string | null;\n /** Issue state */\n state: IssueState;\n /** State reason */\n stateReason: IssueStateReason | null;\n /** Issue author */\n user: GitHubUser;\n /** Assigned users */\n assignees: GitHubUser[];\n /** Labels */\n labels: GitHubLabel[];\n /** Milestone */\n milestone: GitHubMilestone | null;\n /** Creation timestamp (ISO 8601) */\n createdAt: string;\n /** Last update timestamp (ISO 8601) */\n updatedAt: string;\n /** Close timestamp (ISO 8601) */\n closedAt: string | null;\n /** HTML URL */\n htmlUrl: string;\n /** Number of comments */\n comments: number;\n /** Whether this is a pull request */\n isPullRequest: boolean;\n}\n\nexport interface CreateIssueParams extends RepositoryRef {\n /** Issue title */\n title: string;\n /** Issue body/description */\n body?: string;\n /** Assignee usernames */\n assignees?: string[];\n /** Label names */\n labels?: string[];\n /** Milestone number */\n milestone?: number;\n}\n\nexport interface UpdateIssueParams extends RepositoryRef {\n /** Issue number */\n issueNumber: number;\n /** New title */\n title?: string;\n /** New body */\n body?: string;\n /** New state */\n state?: IssueState;\n /** State reason */\n stateReason?: IssueStateReason;\n /** Assignee usernames */\n assignees?: string[];\n /** Label names */\n labels?: string[];\n /** Milestone number */\n milestone?: number | null;\n}\n\nexport interface ListIssuesParams extends RepositoryRef {\n /** Filter by state */\n state?: IssueState | \"all\";\n /** Filter by labels (comma-separated) */\n labels?: string;\n /** Sort field */\n sort?: \"created\" | \"updated\" | \"comments\";\n /** Sort direction */\n direction?: \"asc\" | \"desc\";\n /** Filter by assignee username */\n assignee?: string;\n /** Filter by creator username */\n creator?: string;\n /** Filter by mentioned username */\n mentioned?: string;\n /** Results per page */\n perPage?: number;\n /** Page number */\n page?: number;\n}\n\nexport type PullRequestState = \"open\" | \"closed\";\n\nexport type MergeableState = \"mergeable\" | \"conflicting\" | \"unknown\";\n\nexport interface GitHubPullRequest {\n /** PR number */\n number: number;\n /** PR title */\n title: string;\n /** PR body/description */\n body: string | null;\n /** PR state */\n state: PullRequestState;\n /** Whether PR is a draft */\n draft: boolean;\n /** Whether PR is merged */\n merged: boolean;\n /** Mergeable state */\n mergeable: boolean | null;\n /** Mergeable state detail */\n mergeableState: MergeableState;\n /** PR author */\n user: GitHubUser;\n /** Head branch reference */\n head: GitHubBranchRef;\n /** Base branch reference */\n base: GitHubBranchRef;\n /** Assigned users */\n assignees: GitHubUser[];\n /** Requested reviewers */\n requestedReviewers: GitHubUser[];\n /** Labels */\n labels: GitHubLabel[];\n /** Milestone */\n milestone: GitHubMilestone | null;\n /** Creation timestamp (ISO 8601) */\n createdAt: string;\n /** Last update timestamp (ISO 8601) */\n updatedAt: string;\n /** Close timestamp (ISO 8601) */\n closedAt: string | null;\n /** Merge timestamp (ISO 8601) */\n mergedAt: string | null;\n /** HTML URL */\n htmlUrl: string;\n /** Number of commits */\n commits: number;\n /** Number of additions */\n additions: number;\n /** Number of deletions */\n deletions: number;\n /** Number of changed files */\n changedFiles: number;\n}\n\nexport interface GitHubBranchRef {\n /** Branch name */\n ref: string;\n /** Full ref (refs/heads/...) */\n label: string;\n /** Commit SHA */\n sha: string;\n /** Repository info */\n repo: RepositoryRef | null;\n}\n\nexport interface CreatePullRequestParams extends RepositoryRef {\n /** PR title */\n title: string;\n /** PR body/description */\n body?: string;\n /** Head branch name */\n head: string;\n /** Base branch name */\n base: string;\n /** Create as draft */\n draft?: boolean;\n /** Allow maintainer edits */\n maintainerCanModify?: boolean;\n}\n\nexport interface UpdatePullRequestParams extends RepositoryRef {\n /** PR number */\n pullNumber: number;\n /** New title */\n title?: string;\n /** New body */\n body?: string;\n /** New state */\n state?: PullRequestState;\n /** New base branch */\n base?: string;\n /** Maintainer can modify */\n maintainerCanModify?: boolean;\n}\n\nexport interface MergePullRequestParams extends RepositoryRef {\n /** PR number */\n pullNumber: number;\n /** Commit title */\n commitTitle?: string;\n /** Commit message */\n commitMessage?: string;\n /** Merge method */\n mergeMethod?: \"merge\" | \"squash\" | \"rebase\";\n /** SHA to verify */\n sha?: string;\n}\n\nexport interface ListPullRequestsParams extends RepositoryRef {\n /** Filter by state */\n state?: PullRequestState | \"all\";\n /** Filter by head branch */\n head?: string;\n /** Filter by base branch */\n base?: string;\n /** Sort field */\n sort?: \"created\" | \"updated\" | \"popularity\" | \"long-running\";\n /** Sort direction */\n direction?: \"asc\" | \"desc\";\n /** Results per page */\n perPage?: number;\n /** Page number */\n page?: number;\n}\n\nexport type ReviewState = \"APPROVED\" | \"CHANGES_REQUESTED\" | \"COMMENTED\" | \"DISMISSED\" | \"PENDING\";\n\nexport interface GitHubReview {\n /** Review ID */\n id: number;\n /** Review author */\n user: GitHubUser;\n /** Review body */\n body: string | null;\n /** Review state */\n state: ReviewState;\n /** Commit SHA reviewed */\n commitId: string;\n /** HTML URL */\n htmlUrl: string;\n /** Submission timestamp (ISO 8601) */\n submittedAt: string | null;\n}\n\nexport interface GitHubReviewComment {\n id: number;\n body: string;\n path: string;\n line: number | null;\n originalLine: number | null;\n side: \"LEFT\" | \"RIGHT\";\n user: GitHubUser;\n createdAt: string;\n updatedAt: string;\n htmlUrl: string;\n inReplyToId: number | null;\n}\n\nexport interface CreateReviewParams extends RepositoryRef {\n /** PR number */\n pullNumber: number;\n /** Review body */\n body?: string;\n /** Review event */\n event: \"APPROVE\" | \"REQUEST_CHANGES\" | \"COMMENT\";\n /** Commit SHA to review */\n commitId?: string;\n /** Review comments */\n comments?: ReviewCommentInput[];\n}\n\nexport interface ReviewCommentInput {\n /** File path */\n path: string;\n /** Line number */\n line: number;\n /** Comment body */\n body: string;\n /** Diff side */\n side?: \"LEFT\" | \"RIGHT\";\n /** Start line for multi-line comment */\n startLine?: number;\n /** Start side for multi-line comment */\n startSide?: \"LEFT\" | \"RIGHT\";\n}\n\nexport interface GitHubComment {\n /** Comment ID */\n id: number;\n /** Comment body */\n body: string;\n /** Comment author */\n user: GitHubUser;\n /** Creation timestamp (ISO 8601) */\n createdAt: string;\n /** Last update timestamp (ISO 8601) */\n updatedAt: string;\n /** HTML URL */\n htmlUrl: string;\n}\n\nexport interface CreateCommentParams extends RepositoryRef {\n /** Issue or PR number */\n issueNumber: number;\n /** Comment body */\n body: string;\n}\n\nexport interface GitHubBranch {\n /** Branch name */\n name: string;\n /** Latest commit SHA */\n sha: string;\n /** Whether branch is protected */\n protected: boolean;\n}\n\nexport interface CreateBranchParams extends RepositoryRef {\n /** New branch name */\n branchName: string;\n /** Source ref (branch name or SHA) */\n fromRef: string;\n}\n\nexport interface GitHubCommit {\n /** Commit SHA */\n sha: string;\n /** Commit message */\n message: string;\n /** Commit author */\n author: GitHubCommitAuthor;\n /** Commit committer */\n committer: GitHubCommitAuthor;\n /** Commit timestamp (ISO 8601) */\n timestamp: string;\n /** HTML URL */\n htmlUrl: string;\n /** Parent commit SHAs */\n parents: string[];\n}\n\nexport interface GitHubCommitAuthor {\n /** Author name */\n name: string;\n /** Author email */\n email: string;\n /** Timestamp (ISO 8601) */\n date: string;\n}\n\nexport interface CreateCommitParams extends RepositoryRef {\n /** Commit message */\n message: string;\n /** Files to commit */\n files: FileChange[];\n /** Branch name */\n branch: string;\n /** Parent commit SHA (optional, uses branch head) */\n parentSha?: string;\n /** Author name (optional, uses authenticated user) */\n authorName?: string;\n /** Author email (optional) */\n authorEmail?: string;\n}\n\nexport interface GitHubFileContent {\n /** File name */\n name: string;\n /** File path */\n path: string;\n /** File content (decoded) */\n content: string;\n /** Content SHA */\n sha: string;\n /** File size in bytes */\n size: number;\n /** File type */\n type: \"file\" | \"dir\" | \"symlink\" | \"submodule\";\n /** Encoding (usually base64) */\n encoding: string;\n /** HTML URL */\n htmlUrl: string;\n /** Download URL */\n downloadUrl: string | null;\n}\n\nexport interface GetFileParams extends FileRef {}\n\nexport interface GitHubDirectoryEntry {\n /** Entry name */\n name: string;\n /** Entry path */\n path: string;\n /** Entry SHA */\n sha: string;\n /** Entry size (0 for directories) */\n size: number;\n /** Entry type */\n type: \"file\" | \"dir\" | \"symlink\" | \"submodule\";\n /** HTML URL */\n htmlUrl: string;\n /** Download URL (null for directories) */\n downloadUrl: string | null;\n}\n\nexport interface GitHubRepository {\n /** Repository ID */\n id: number;\n /** Repository name */\n name: string;\n /** Full name (owner/repo) */\n fullName: string;\n /** Repository owner */\n owner: GitHubUser;\n /** Description */\n description: string | null;\n /** Whether repository is private */\n private: boolean;\n /** Whether repository is a fork */\n fork: boolean;\n /** Default branch name */\n defaultBranch: string;\n /** Primary language */\n language: string | null;\n /** Star count */\n stargazersCount: number;\n /** Fork count */\n forksCount: number;\n /** Open issues count */\n openIssuesCount: number;\n /** Watcher count */\n watchersCount: number;\n /** HTML URL */\n htmlUrl: string;\n /** Clone URL */\n cloneUrl: string;\n /** SSH URL */\n sshUrl: string;\n /** Creation timestamp (ISO 8601) */\n createdAt: string;\n /** Last update timestamp (ISO 8601) */\n updatedAt: string;\n /** Last push timestamp (ISO 8601) */\n pushedAt: string;\n /** Topics */\n topics: string[];\n /** License */\n license: GitHubLicense | null;\n}\n\nexport interface GitHubLicense {\n /** License key */\n key: string;\n /** License name */\n name: string;\n /** SPDX ID */\n spdxId: string | null;\n /** URL */\n url: string | null;\n}\n\nexport interface GitHubUser {\n /** User ID */\n id: number;\n /** Username */\n login: string;\n /** Display name */\n name: string | null;\n /** Avatar URL */\n avatarUrl: string;\n /** HTML profile URL */\n htmlUrl: string;\n /** User type */\n type: \"User\" | \"Organization\" | \"Bot\";\n}\n\nexport interface GitHubLabel {\n /** Label ID */\n id: number;\n /** Label name */\n name: string;\n /** Label color (hex without #) */\n color: string;\n /** Label description */\n description: string | null;\n /** Whether this is a default label */\n default: boolean;\n}\n\nexport interface GitHubMilestone {\n /** Milestone number */\n number: number;\n /** Milestone title */\n title: string;\n /** Milestone description */\n description: string | null;\n /** Milestone state */\n state: \"open\" | \"closed\";\n /** Due date (ISO 8601) */\n dueOn: string | null;\n /** Creation timestamp (ISO 8601) */\n createdAt: string;\n /** Last update timestamp (ISO 8601) */\n updatedAt: string;\n /** Close timestamp (ISO 8601) */\n closedAt: string | null;\n /** Open issues count */\n openIssues: number;\n /** Closed issues count */\n closedIssues: number;\n}\n\nexport type GitHubEventType =\n | \"push\"\n | \"pull_request\"\n | \"pull_request_review\"\n | \"pull_request_review_comment\"\n | \"issues\"\n | \"issue_comment\"\n | \"create\"\n | \"delete\"\n | \"fork\"\n | \"star\"\n | \"watch\"\n | \"release\"\n | \"workflow_run\"\n | \"check_run\"\n | \"check_suite\"\n | \"status\";\n\nexport interface GitHubWebhookEvent {\n /** Event action */\n action?: string;\n /** Sender (user who triggered the event) */\n sender: GitHubUser;\n /** Repository */\n repository: GitHubRepository;\n /** Organization (if applicable) */\n organization?: GitHubUser;\n}\n\nexport interface PushEventPayload extends GitHubWebhookEvent {\n /** Ref that was pushed (refs/heads/...) */\n ref: string;\n /** Before SHA */\n before: string;\n /** After SHA */\n after: string;\n /** Whether ref was created */\n created: boolean;\n /** Whether ref was deleted */\n deleted: boolean;\n /** Whether push was forced */\n forced: boolean;\n /** Commits in the push */\n commits: PushCommit[];\n /** Head commit */\n headCommit: PushCommit | null;\n /** Compare URL */\n compare: string;\n /** Pusher info */\n pusher: { name: string; email: string };\n}\n\nexport interface PushCommit {\n /** Commit SHA */\n id: string;\n /** Commit message */\n message: string;\n /** Commit timestamp (ISO 8601) */\n timestamp: string;\n /** Commit URL */\n url: string;\n /** Author */\n author: { name: string; email: string };\n /** Committer */\n committer: { name: string; email: string };\n /** Added files */\n added: string[];\n /** Removed files */\n removed: string[];\n /** Modified files */\n modified: string[];\n}\n\nexport interface PullRequestEventPayload extends GitHubWebhookEvent {\n action:\n | \"opened\"\n | \"closed\"\n | \"reopened\"\n | \"synchronize\"\n | \"edited\"\n | \"assigned\"\n | \"unassigned\"\n | \"labeled\"\n | \"unlabeled\"\n | \"ready_for_review\"\n | \"converted_to_draft\"\n | \"review_requested\"\n | \"review_request_removed\";\n /** Pull request number */\n number: number;\n /** Pull request */\n pullRequest: GitHubPullRequest;\n}\n\nexport interface IssueEventPayload extends GitHubWebhookEvent {\n action:\n | \"opened\"\n | \"closed\"\n | \"reopened\"\n | \"edited\"\n | \"assigned\"\n | \"unassigned\"\n | \"labeled\"\n | \"unlabeled\"\n | \"pinned\"\n | \"unpinned\"\n | \"milestoned\"\n | \"demilestoned\"\n | \"transferred\"\n | \"deleted\";\n /** Issue */\n issue: GitHubIssue;\n}\n\nexport interface CommentEventPayload extends GitHubWebhookEvent {\n action: \"created\" | \"edited\" | \"deleted\";\n /** Issue or PR */\n issue: GitHubIssue;\n /** Comment */\n comment: GitHubComment;\n}\n\nexport interface GitHubSettings {\n /** GitHub API token */\n apiToken: string;\n /** Default repository owner */\n owner?: string;\n /** Default repository name */\n repo?: string;\n /** Default branch */\n branch?: string;\n /** Webhook secret */\n webhookSecret?: string;\n /** GitHub App ID */\n appId?: string;\n /** GitHub App private key */\n appPrivateKey?: string;\n /** GitHub App installation ID */\n installationId?: string;\n}\n\nexport const repositoryRefSchema = z.object({\n owner: z.string().min(1, \"Owner is required\"),\n repo: z.string().min(1, \"Repo is required\"),\n});\n\nexport const fileRefSchema = repositoryRefSchema.extend({\n path: z.string().min(1, \"Path is required\"),\n branch: z.string().optional(),\n});\n\nexport const createIssueSchema = repositoryRefSchema.extend({\n title: z.string().min(1, \"Title is required\"),\n body: z.string().optional(),\n assignees: z.array(z.string()).optional(),\n labels: z.array(z.string()).optional(),\n milestone: z.number().optional(),\n});\n\nexport const updateIssueSchema = repositoryRefSchema.extend({\n issueNumber: z.number().min(1, \"Issue number is required\"),\n title: z.string().optional(),\n body: z.string().optional(),\n state: z.enum([\"open\", \"closed\"]).optional(),\n stateReason: z.enum([\"completed\", \"not_planned\", \"reopened\"]).optional(),\n assignees: z.array(z.string()).optional(),\n labels: z.array(z.string()).optional(),\n milestone: z.number().nullable().optional(),\n});\n\nexport const createPullRequestSchema = repositoryRefSchema.extend({\n title: z.string().min(1, \"Title is required\"),\n body: z.string().optional(),\n head: z.string().min(1, \"Head branch is required\"),\n base: z.string().min(1, \"Base branch is required\"),\n draft: z.boolean().optional(),\n maintainerCanModify: z.boolean().optional(),\n});\n\nexport const createReviewSchema = repositoryRefSchema.extend({\n pullNumber: z.number().min(1, \"Pull request number is required\"),\n body: z.string().optional(),\n event: z.enum([\"APPROVE\", \"REQUEST_CHANGES\", \"COMMENT\"]),\n commitId: z.string().optional(),\n comments: z\n .array(\n z.object({\n path: z.string(),\n line: z.number(),\n body: z.string(),\n side: z.enum([\"LEFT\", \"RIGHT\"]).optional(),\n startLine: z.number().optional(),\n startSide: z.enum([\"LEFT\", \"RIGHT\"]).optional(),\n })\n )\n .optional(),\n});\n\nexport const createCommentSchema = repositoryRefSchema.extend({\n issueNumber: z.number().min(1, \"Issue number is required\"),\n body: z.string().min(1, \"Comment body is required\"),\n});\n\nexport const createBranchSchema = repositoryRefSchema.extend({\n branchName: z.string().min(1, \"Branch name is required\"),\n fromRef: z.string().min(1, \"Source ref is required\"),\n});\n\nexport const createCommitSchema = repositoryRefSchema.extend({\n message: z.string().min(1, \"Commit message is required\"),\n files: z.array(\n z.object({\n path: z.string().min(1, \"File path is required\"),\n content: z.string(),\n encoding: z.enum([\"utf-8\", \"base64\"]).optional(),\n operation: z.enum([\"add\", \"modify\", \"delete\"]).optional(),\n })\n ),\n branch: z.string().min(1, \"Branch is required\"),\n parentSha: z.string().optional(),\n authorName: z.string().optional(),\n authorEmail: z.string().optional(),\n});\n\nexport const mergePullRequestSchema = repositoryRefSchema.extend({\n pullNumber: z.number().min(1, \"Pull request number is required\"),\n commitTitle: z.string().optional(),\n commitMessage: z.string().optional(),\n mergeMethod: z.enum([\"merge\", \"squash\", \"rebase\"]).optional(),\n sha: z.string().optional(),\n});\n\nexport const gitHubSettingsSchema = z.object({\n apiToken: z.string().min(1, \"API token is required\"),\n owner: z.string().optional(),\n repo: z.string().optional(),\n branch: z.string().optional(),\n webhookSecret: z.string().optional(),\n appId: z.string().optional(),\n appPrivateKey: z.string().optional(),\n installationId: z.string().optional(),\n});\n\nexport function formatZodErrors(error: z.ZodError): string {\n return z.prettifyError(error);\n}\n",
13
- "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { type CreateCommentParams, createCommentSchema, formatZodErrors } from \"../types\";\n\nconst spec = requireActionSpec(\"CREATE_COMMENT\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Comment on issue #42 saying 'I'll take a look at this today'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll add that comment to issue #42.\",\n actions: [\"CREATE_GITHUB_COMMENT\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Reply to PR #15 with 'Thanks for the fix!'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Adding your comment to pull request #15.\",\n actions: [\"CREATE_GITHUB_COMMENT\"],\n },\n },\n ],\n];\n\nexport const createCommentAction: Action = {\n name: \"CREATE_GITHUB_COMMENT\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return text.includes(\"comment\") || text.includes(\"reply\") || text.includes(\"respond\");\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text ?? \"\";\n\n const params: CreateCommentParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n issueNumber: (state?.issueNumber as number) ?? 0,\n body: (state?.body as string) ?? text,\n };\n\n const validation = createCommentSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid comment parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't create the comment due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const comment = await service.createComment(params);\n\n logger.info(`Created comment on #${params.issueNumber}`);\n\n if (callback) {\n await callback({\n text: `Added comment to #${params.issueNumber}.\\n\\nView it at: ${comment.htmlUrl}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to create comment: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to create the comment: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default createCommentAction;\n",
14
- "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { type CreateIssueParams, createIssueSchema, formatZodErrors } from \"../types\";\n\nconst spec = requireActionSpec(\"CREATE_ISSUE\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Create an issue in my-org/my-repo with title 'Bug: Login fails' and body 'Users cannot log in after update'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll create that issue for you in my-org/my-repo.\",\n actions: [\"CREATE_GITHUB_ISSUE\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Open a new issue titled 'Add dark mode support' with labels 'enhancement' and 'ui'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Creating a new issue with the title 'Add dark mode support' and the specified labels.\",\n actions: [\"CREATE_GITHUB_ISSUE\"],\n },\n },\n ],\n];\n\nexport const createIssueAction: Action = {\n name: \"CREATE_GITHUB_ISSUE\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return (\n text.includes(\"issue\") ||\n text.includes(\"bug\") ||\n text.includes(\"report\") ||\n text.includes(\"ticket\")\n );\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text ?? \"\";\n\n const params: CreateIssueParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n title: (state?.title as string) ?? text.slice(0, 100),\n body: (state?.body as string) ?? text,\n labels: (state?.labels as string[]) ?? [],\n assignees: (state?.assignees as string[]) ?? [],\n };\n\n const validation = createIssueSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid issue parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't create the issue due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const issue = await service.createIssue(params);\n\n logger.info(`Created issue #${issue.number}: ${issue.title}`);\n\n if (callback) {\n await callback({\n text: `Created issue #${issue.number}: \"${issue.title}\"\\n\\nView it at: ${issue.htmlUrl}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to create issue: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to create the issue: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default createIssueAction;\n",
15
- "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { type CreatePullRequestParams, createPullRequestSchema, formatZodErrors } from \"../types\";\n\nconst spec = requireActionSpec(\"CREATE_PULL_REQUEST\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: spec.name,\n content: {\n text: \"Create a pull request from feature/dark-mode to main with title 'Add dark mode support'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll create a pull request from feature/dark-mode to main.\",\n actions: [\"CREATE_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Open a PR to merge my-branch into develop\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Creating a pull request to merge my-branch into develop.\",\n actions: [\"CREATE_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n];\n\nexport const createPullRequestAction: Action = {\n name: \"CREATE_GITHUB_PULL_REQUEST\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return text.includes(\"pull request\") || text.includes(\"pr\") || text.includes(\"merge\");\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text ?? \"\";\n\n const params: CreatePullRequestParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n title: (state?.title as string) ?? text.slice(0, 100),\n body: (state?.body as string) ?? text,\n head: (state?.head as string) ?? \"\",\n base: (state?.base as string) ?? service.getConfig().branch ?? \"main\",\n draft: (state?.draft as boolean) ?? false,\n };\n\n const validation = createPullRequestSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid pull request parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't create the pull request due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const pr = await service.createPullRequest(params);\n\n logger.info(`Created pull request #${pr.number}: ${pr.title}`);\n\n if (callback) {\n await callback({\n text: `Created pull request #${pr.number}: \"${pr.title}\"\\n\\nFrom: ${pr.head.ref}\\nTo: ${pr.base.ref}\\n\\nView it at: ${pr.htmlUrl}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to create pull request: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to create the pull request: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default createPullRequestAction;\n",
16
- "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { formatZodErrors, type MergePullRequestParams, mergePullRequestSchema } from \"../types\";\n\nconst spec = requireActionSpec(\"MERGE_PULL_REQUEST\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: spec.name,\n content: {\n text: \"Merge pull request #42\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll merge pull request #42.\",\n actions: [\"MERGE_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Squash and merge PR #15 with title 'Feature: Add dark mode'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Squash merging pull request #15 with your custom commit title.\",\n actions: [\"MERGE_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n];\n\nexport const mergePullRequestAction: Action = {\n name: \"MERGE_GITHUB_PULL_REQUEST\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return text.includes(\"merge\");\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text?.toLowerCase() ?? \"\";\n\n let mergeMethod: \"merge\" | \"squash\" | \"rebase\" = \"merge\";\n if (text.includes(\"squash\")) {\n mergeMethod = \"squash\";\n } else if (text.includes(\"rebase\")) {\n mergeMethod = \"rebase\";\n }\n\n const params: MergePullRequestParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n pullNumber: (state?.pullNumber as number) ?? 0,\n commitTitle: state?.commitTitle as string | undefined,\n commitMessage: state?.commitMessage as string | undefined,\n mergeMethod: (state?.mergeMethod as \"merge\" | \"squash\" | \"rebase\") ?? mergeMethod,\n };\n\n const validation = mergePullRequestSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid merge parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't merge the pull request due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const result = await service.mergePullRequest(params);\n\n if (result.merged) {\n logger.info(`Merged pull request #${params.pullNumber}`);\n if (callback) {\n await callback({\n text: `Successfully merged pull request #${params.pullNumber}.\\n\\nMerge commit: ${result.sha.slice(0, 7)}\\nMethod: ${params.mergeMethod}`,\n });\n }\n return { success: true };\n } else {\n logger.warn(`Pull request #${params.pullNumber} was not merged: ${result.message}`);\n if (callback) {\n await callback({\n text: `Could not merge pull request #${params.pullNumber}: ${result.message}`,\n });\n }\n return { success: false };\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to merge pull request: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to merge the pull request: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default mergePullRequestAction;\n",
17
- "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport {\n type CreateCommitParams,\n createCommitSchema,\n type FileChange,\n formatZodErrors,\n} from \"../types\";\n\nconst spec = requireActionSpec(\"PUSH_CODE\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: spec.name,\n content: {\n text: \"Push the file changes to the feature/dark-mode branch with message 'Add dark mode styles'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll commit and push those changes to feature/dark-mode.\",\n actions: [\"PUSH_GITHUB_CODE\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Commit these files to main: README.md with content 'Hello World'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Committing README.md to main branch.\",\n actions: [\"PUSH_GITHUB_CODE\"],\n },\n },\n ],\n];\n\nexport const pushCodeAction: Action = {\n name: \"PUSH_GITHUB_CODE\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return (\n text.includes(\"push\") ||\n text.includes(\"commit\") ||\n text.includes(\"save\") ||\n text.includes(\"upload\")\n );\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text ?? \"\";\n\n const files = (state?.files as FileChange[]) ?? [];\n\n const params: CreateCommitParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n message: (state?.message as string) ?? text.slice(0, 100),\n files,\n branch: (state?.branch as string) ?? service.getConfig().branch ?? \"main\",\n authorName: state?.authorName as string | undefined,\n authorEmail: state?.authorEmail as string | undefined,\n };\n\n const validation = createCommitSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid commit parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't push the code due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const commit = await service.createCommit(params);\n\n logger.info(`Created commit ${commit.sha.slice(0, 7)} on ${params.branch}`);\n\n if (callback) {\n await callback({\n text: `Pushed ${files.length} file(s) to ${params.branch}.\\n\\nCommit: ${commit.sha.slice(0, 7)}\\nMessage: ${commit.message}\\n\\nView at: ${commit.htmlUrl}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to push code: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to push the code: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default pushCodeAction;\n",
18
- "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { type CreateReviewParams, createReviewSchema, formatZodErrors } from \"../types\";\n\nconst spec = requireActionSpec(\"REVIEW_PULL_REQUEST\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: spec.name,\n content: {\n text: \"Approve pull request #42 with comment 'LGTM!'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll approve pull request #42 with that comment.\",\n actions: [\"REVIEW_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Request changes on PR #15 - the tests are failing\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll request changes on pull request #15 with your feedback.\",\n actions: [\"REVIEW_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n];\n\nexport const reviewPullRequestAction: Action = {\n name: \"REVIEW_GITHUB_PULL_REQUEST\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return (\n text.includes(\"review\") ||\n text.includes(\"approve\") ||\n text.includes(\"request changes\") ||\n text.includes(\"lgtm\")\n );\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text ?? \"\";\n\n let event: \"APPROVE\" | \"REQUEST_CHANGES\" | \"COMMENT\" = \"COMMENT\";\n const lowerText = text.toLowerCase();\n if (\n lowerText.includes(\"approve\") ||\n lowerText.includes(\"lgtm\") ||\n lowerText.includes(\"looks good\")\n ) {\n event = \"APPROVE\";\n } else if (\n lowerText.includes(\"request changes\") ||\n lowerText.includes(\"needs work\") ||\n lowerText.includes(\"fix\")\n ) {\n event = \"REQUEST_CHANGES\";\n }\n\n const params: CreateReviewParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n pullNumber: (state?.pullNumber as number) ?? 0,\n body: (state?.body as string) ?? text,\n event: (state?.event as \"APPROVE\" | \"REQUEST_CHANGES\" | \"COMMENT\") ?? event,\n };\n\n const validation = createReviewSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid review parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't create the review due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const review = await service.createReview(params);\n\n const eventLabel =\n review.state === \"APPROVED\"\n ? \"approved\"\n : review.state === \"CHANGES_REQUESTED\"\n ? \"requested changes on\"\n : \"commented on\";\n\n logger.info(`Created ${review.state} review on PR #${params.pullNumber}`);\n\n if (callback) {\n await callback({\n text: `I've ${eventLabel} pull request #${params.pullNumber}.\\n\\nView the review at: ${review.htmlUrl}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to create review: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to create the review: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default reviewPullRequestAction;\n",
13
+ "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { type CreateCommentParams, createCommentSchema, formatZodErrors } from \"../types\";\n\nconst spec = requireActionSpec(\"CREATE_COMMENT\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Comment on issue #42 saying 'I'll take a look at this today'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll add that comment to issue #42.\",\n actions: [\"CREATE_GITHUB_COMMENT\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Reply to PR #15 with 'Thanks for the fix!'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Adding your comment to pull request #15.\",\n actions: [\"CREATE_GITHUB_COMMENT\"],\n },\n },\n ],\n];\n\nexport const createCommentAction: Action = {\n name: \"CREATE_GITHUB_COMMENT\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return text.includes(\"comment\") || text.includes(\"reply\") || text.includes(\"respond\");\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text ?? \"\";\n\n const params: CreateCommentParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n issueNumber: (state?.issueNumber as number) ?? 0,\n body: (state?.body as string) ?? text,\n };\n\n const validation = createCommentSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid comment parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't create the comment due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const comment = await service.createComment(params);\n\n logger.info(`Created comment on #${params.issueNumber}`);\n\n if (callback) {\n await callback({\n text: `Added comment to #${params.issueNumber}.\\n\\nView it at: ${comment.htmlUrl}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to create comment: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to create the comment: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default createCommentAction;\n",
14
+ "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { type CreateIssueParams, createIssueSchema, formatZodErrors } from \"../types\";\n\nconst spec = requireActionSpec(\"CREATE_ISSUE\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Create an issue in my-org/my-repo with title 'Bug: Login fails' and body 'Users cannot log in after update'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll create that issue for you in my-org/my-repo.\",\n actions: [\"CREATE_GITHUB_ISSUE\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Open a new issue titled 'Add dark mode support' with labels 'enhancement' and 'ui'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Creating a new issue with the title 'Add dark mode support' and the specified labels.\",\n actions: [\"CREATE_GITHUB_ISSUE\"],\n },\n },\n ],\n];\n\nexport const createIssueAction: Action = {\n name: \"CREATE_GITHUB_ISSUE\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return (\n text.includes(\"issue\") ||\n text.includes(\"bug\") ||\n text.includes(\"report\") ||\n text.includes(\"ticket\")\n );\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text ?? \"\";\n\n const params: CreateIssueParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n title: (state?.title as string) ?? text.slice(0, 100),\n body: (state?.body as string) ?? text,\n labels: (state?.labels as string[]) ?? [],\n assignees: (state?.assignees as string[]) ?? [],\n };\n\n const validation = createIssueSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid issue parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't create the issue due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const issue = await service.createIssue(params);\n\n logger.info(`Created issue #${issue.number}: ${issue.title}`);\n\n if (callback) {\n await callback({\n text: `Created issue #${issue.number}: \"${issue.title}\"\\n\\nView it at: ${issue.htmlUrl}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to create issue: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to create the issue: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default createIssueAction;\n",
15
+ "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { type CreatePullRequestParams, createPullRequestSchema, formatZodErrors } from \"../types\";\n\nconst spec = requireActionSpec(\"CREATE_PULL_REQUEST\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: spec.name,\n content: {\n text: \"Create a pull request from feature/dark-mode to main with title 'Add dark mode support'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll create a pull request from feature/dark-mode to main.\",\n actions: [\"CREATE_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Open a PR to merge my-branch into develop\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Creating a pull request to merge my-branch into develop.\",\n actions: [\"CREATE_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n];\n\nexport const createPullRequestAction: Action = {\n name: \"CREATE_GITHUB_PULL_REQUEST\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return text.includes(\"pull request\") || text.includes(\"pr\") || text.includes(\"merge\");\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text ?? \"\";\n\n const params: CreatePullRequestParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n title: (state?.title as string) ?? text.slice(0, 100),\n body: (state?.body as string) ?? text,\n head: (state?.head as string) ?? \"\",\n base: (state?.base as string) ?? service.getConfig().branch ?? \"main\",\n draft: (state?.draft as boolean) ?? false,\n };\n\n const validation = createPullRequestSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid pull request parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't create the pull request due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const pr = await service.createPullRequest(params);\n\n logger.info(`Created pull request #${pr.number}: ${pr.title}`);\n\n if (callback) {\n await callback({\n text: `Created pull request #${pr.number}: \"${pr.title}\"\\n\\nFrom: ${pr.head.ref}\\nTo: ${pr.base.ref}\\n\\nView it at: ${pr.htmlUrl}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to create pull request: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to create the pull request: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default createPullRequestAction;\n",
16
+ "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { formatZodErrors, type MergePullRequestParams, mergePullRequestSchema } from \"../types\";\n\nconst spec = requireActionSpec(\"MERGE_PULL_REQUEST\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: spec.name,\n content: {\n text: \"Merge pull request #42\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll merge pull request #42.\",\n actions: [\"MERGE_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Squash and merge PR #15 with title 'Feature: Add dark mode'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Squash merging pull request #15 with your custom commit title.\",\n actions: [\"MERGE_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n];\n\nexport const mergePullRequestAction: Action = {\n name: \"MERGE_GITHUB_PULL_REQUEST\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return text.includes(\"merge\");\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text?.toLowerCase() ?? \"\";\n\n let mergeMethod: \"merge\" | \"squash\" | \"rebase\" = \"merge\";\n if (text.includes(\"squash\")) {\n mergeMethod = \"squash\";\n } else if (text.includes(\"rebase\")) {\n mergeMethod = \"rebase\";\n }\n\n const params: MergePullRequestParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n pullNumber: (state?.pullNumber as number) ?? 0,\n commitTitle: state?.commitTitle as string | undefined,\n commitMessage: state?.commitMessage as string | undefined,\n mergeMethod: (state?.mergeMethod as \"merge\" | \"squash\" | \"rebase\") ?? mergeMethod,\n };\n\n const validation = mergePullRequestSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid merge parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't merge the pull request due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const result = await service.mergePullRequest(params);\n\n if (result.merged) {\n logger.info(`Merged pull request #${params.pullNumber}`);\n if (callback) {\n await callback({\n text: `Successfully merged pull request #${params.pullNumber}.\\n\\nMerge commit: ${result.sha.slice(0, 7)}\\nMethod: ${params.mergeMethod}`,\n });\n }\n return { success: true };\n } else {\n logger.warn(`Pull request #${params.pullNumber} was not merged: ${result.message}`);\n if (callback) {\n await callback({\n text: `Could not merge pull request #${params.pullNumber}: ${result.message}`,\n });\n }\n return { success: false };\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to merge pull request: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to merge the pull request: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default mergePullRequestAction;\n",
17
+ "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport {\n type CreateCommitParams,\n createCommitSchema,\n type FileChange,\n formatZodErrors,\n} from \"../types\";\n\nconst spec = requireActionSpec(\"PUSH_CODE\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: spec.name,\n content: {\n text: \"Push the file changes to the feature/dark-mode branch with message 'Add dark mode styles'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll commit and push those changes to feature/dark-mode.\",\n actions: [\"PUSH_GITHUB_CODE\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Commit these files to main: README.md with content 'Hello World'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Committing README.md to main branch.\",\n actions: [\"PUSH_GITHUB_CODE\"],\n },\n },\n ],\n];\n\nexport const pushCodeAction: Action = {\n name: \"PUSH_GITHUB_CODE\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return (\n text.includes(\"push\") ||\n text.includes(\"commit\") ||\n text.includes(\"save\") ||\n text.includes(\"upload\")\n );\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text ?? \"\";\n\n const files = (state?.files as FileChange[]) ?? [];\n\n const params: CreateCommitParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n message: (state?.message as string) ?? text.slice(0, 100),\n files,\n branch: (state?.branch as string) ?? service.getConfig().branch ?? \"main\",\n authorName: state?.authorName as string | undefined,\n authorEmail: state?.authorEmail as string | undefined,\n };\n\n const validation = createCommitSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid commit parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't push the code due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const commit = await service.createCommit(params);\n\n logger.info(`Created commit ${commit.sha.slice(0, 7)} on ${params.branch}`);\n\n if (callback) {\n await callback({\n text: `Pushed ${files.length} file(s) to ${params.branch}.\\n\\nCommit: ${commit.sha.slice(0, 7)}\\nMessage: ${commit.message}\\n\\nView at: ${commit.htmlUrl}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to push code: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to push the code: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default pushCodeAction;\n",
18
+ "import {\n type Action,\n type ActionExample,\n type ActionResult,\n type Content,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\nimport { type CreateReviewParams, createReviewSchema, formatZodErrors } from \"../types\";\n\nconst spec = requireActionSpec(\"REVIEW_PULL_REQUEST\");\n\nconst examples: ActionExample[][] = [\n [\n {\n name: spec.name,\n content: {\n text: \"Approve pull request #42 with comment 'LGTM!'\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll approve pull request #42 with that comment.\",\n actions: [\"REVIEW_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Request changes on PR #15 - the tests are failing\",\n },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"I'll request changes on pull request #15 with your feedback.\",\n actions: [\"REVIEW_GITHUB_PULL_REQUEST\"],\n },\n },\n ],\n];\n\nexport const reviewPullRequestAction: Action = {\n name: \"REVIEW_GITHUB_PULL_REQUEST\",\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n const service = runtime.getService(GITHUB_SERVICE_NAME);\n if (!service) {\n return false;\n }\n\n const text = (message.content as Content).text?.toLowerCase() ?? \"\";\n return (\n text.includes(\"review\") ||\n text.includes(\"approve\") ||\n text.includes(\"request changes\") ||\n text.includes(\"lgtm\")\n );\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n logger.error(\"GitHub service not available\");\n if (callback) {\n await callback({\n text: \"GitHub service is not available. Please ensure the plugin is properly configured.\",\n });\n }\n return { success: false };\n }\n\n try {\n const content = message.content as Content;\n const text = content.text ?? \"\";\n\n let event: \"APPROVE\" | \"REQUEST_CHANGES\" | \"COMMENT\" = \"COMMENT\";\n const lowerText = text.toLowerCase();\n if (\n lowerText.includes(\"approve\") ||\n lowerText.includes(\"lgtm\") ||\n lowerText.includes(\"looks good\")\n ) {\n event = \"APPROVE\";\n } else if (\n lowerText.includes(\"request changes\") ||\n lowerText.includes(\"needs work\") ||\n lowerText.includes(\"fix\")\n ) {\n event = \"REQUEST_CHANGES\";\n }\n\n const params: CreateReviewParams = {\n owner: (state?.owner as string) ?? service.getConfig().owner ?? \"\",\n repo: (state?.repo as string) ?? service.getConfig().repo ?? \"\",\n pullNumber: (state?.pullNumber as number) ?? 0,\n body: (state?.body as string) ?? text,\n event: (state?.event as \"APPROVE\" | \"REQUEST_CHANGES\" | \"COMMENT\") ?? event,\n };\n\n const validation = createReviewSchema.safeParse(params);\n if (!validation.success) {\n const errors = formatZodErrors(validation.error);\n logger.error(`Invalid review parameters: ${errors}`);\n if (callback) {\n await callback({\n text: `I couldn't create the review due to missing information: ${errors}`,\n });\n }\n return { success: false };\n }\n\n const review = await service.createReview(params);\n\n const eventLabel =\n review.state === \"APPROVED\"\n ? \"approved\"\n : review.state === \"CHANGES_REQUESTED\"\n ? \"requested changes on\"\n : \"commented on\";\n\n logger.info(`Created ${review.state} review on PR #${params.pullNumber}`);\n\n if (callback) {\n await callback({\n text: `I've ${eventLabel} pull request #${params.pullNumber}.\\n\\nView the review at: ${review.htmlUrl}`,\n });\n }\n\n return { success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Failed to create review: ${errorMessage}`);\n\n if (callback) {\n await callback({\n text: `Failed to create the review: ${errorMessage}`,\n });\n }\n\n return { success: false };\n }\n },\n\n examples,\n};\n\nexport default reviewPullRequestAction;\n",
19
19
  "export { createBranchAction, default as createBranch } from \"./createBranch\";\nexport { createCommentAction, default as createComment } from \"./createComment\";\nexport { createIssueAction, default as createIssue } from \"./createIssue\";\nexport {\n createPullRequestAction,\n default as createPullRequest,\n} from \"./createPullRequest\";\nexport {\n default as mergePullRequest,\n mergePullRequestAction,\n} from \"./mergePullRequest\";\nexport { default as pushCode, pushCodeAction } from \"./pushCode\";\nexport {\n default as reviewPullRequest,\n reviewPullRequestAction,\n} from \"./reviewPullRequest\";\n\nimport { createBranchAction } from \"./createBranch\";\nimport { createCommentAction } from \"./createComment\";\nimport { createIssueAction } from \"./createIssue\";\nimport { createPullRequestAction } from \"./createPullRequest\";\nimport { mergePullRequestAction } from \"./mergePullRequest\";\nimport { pushCodeAction } from \"./pushCode\";\nimport { reviewPullRequestAction } from \"./reviewPullRequest\";\n\nexport const allActions = [\n createIssueAction,\n createPullRequestAction,\n reviewPullRequestAction,\n createCommentAction,\n createBranchAction,\n pushCodeAction,\n mergePullRequestAction,\n];\n",
20
20
  "import type {\n Content,\n IAgentRuntime,\n Memory,\n Provider,\n ProviderResult,\n State,\n} from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\n\nfunction extractIssueNumber(text: string): number | null {\n const patterns = [/#(\\d+)/, /issue\\s*#?(\\d+)/i, /pr\\s*#?(\\d+)/i, /pull\\s*request\\s*#?(\\d+)/i];\n\n for (const pattern of patterns) {\n const match = text.match(pattern);\n if (match?.[1]) {\n return Number.parseInt(match[1], 10);\n }\n }\n\n return null;\n}\n\nconst spec = requireProviderSpec(\"issueContext\");\n\nexport const issueContextProvider: Provider = {\n name: spec.name,\n description:\n \"Provides detailed context about a specific GitHub issue or pull request when referenced\",\n\n get: async (runtime: IAgentRuntime, message: Memory, _state: State): Promise<ProviderResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n return { text: null };\n }\n\n const text = (message.content as Content).text ?? \"\";\n const issueNumber = extractIssueNumber(text);\n\n if (!issueNumber) {\n return { text: null };\n }\n\n try {\n const config = service.getConfig();\n\n if (!config.owner || !config.repo) {\n return { text: null };\n }\n\n try {\n const issue = await service.getIssue({\n owner: config.owner,\n repo: config.repo,\n issueNumber,\n });\n\n if (issue.isPullRequest) {\n const pr = await service.getPullRequest({\n owner: config.owner,\n repo: config.repo,\n pullNumber: issueNumber,\n });\n\n const labels = pr.labels.map((l) => l.name).join(\", \");\n const assignees = pr.assignees.map((a) => a.login).join(\", \");\n const reviewers = pr.requestedReviewers.map((r) => r.login).join(\", \");\n\n const parts = [\n `## Pull Request #${pr.number}: ${pr.title}`,\n \"\",\n `**State:** ${pr.state}${pr.draft ? \" (Draft)\" : \"\"}${pr.merged ? \" (Merged)\" : \"\"}`,\n `**Author:** ${pr.user.login}`,\n `**Branch:** ${pr.head.ref} → ${pr.base.ref}`,\n `**Created:** ${pr.createdAt}`,\n `**Updated:** ${pr.updatedAt}`,\n ];\n\n if (labels) {\n parts.push(`**Labels:** ${labels}`);\n }\n if (assignees) {\n parts.push(`**Assignees:** ${assignees}`);\n }\n if (reviewers) {\n parts.push(`**Reviewers Requested:** ${reviewers}`);\n }\n\n parts.push(\n \"\",\n `**Changes:** +${pr.additions} / -${pr.deletions} (${pr.changedFiles} files)`,\n \"\",\n \"### Description\",\n pr.body ?? \"_No description provided_\",\n \"\",\n `**URL:** ${pr.htmlUrl}`\n );\n\n return { text: parts.join(\"\\n\") };\n }\n\n const labels = issue.labels.map((l) => l.name).join(\", \");\n const assignees = issue.assignees.map((a) => a.login).join(\", \");\n\n const parts = [\n `## Issue #${issue.number}: ${issue.title}`,\n \"\",\n `**State:** ${issue.state}${issue.stateReason ? ` (${issue.stateReason})` : \"\"}`,\n `**Author:** ${issue.user.login}`,\n `**Created:** ${issue.createdAt}`,\n `**Updated:** ${issue.updatedAt}`,\n `**Comments:** ${issue.comments}`,\n ];\n\n if (labels) {\n parts.push(`**Labels:** ${labels}`);\n }\n if (assignees) {\n parts.push(`**Assignees:** ${assignees}`);\n }\n if (issue.milestone) {\n parts.push(`**Milestone:** ${issue.milestone.title}`);\n }\n\n parts.push(\n \"\",\n \"### Description\",\n issue.body ?? \"_No description provided_\",\n \"\",\n `**URL:** ${issue.htmlUrl}`\n );\n\n return { text: parts.join(\"\\n\") };\n } catch {\n return {\n text: `Issue/PR #${issueNumber} not found in ${config.owner}/${config.repo}`,\n };\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n return { text: `Unable to fetch issue context: ${errorMessage}` };\n }\n },\n};\n\nexport default issueContextProvider;\n",
21
21
  "import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport { GITHUB_SERVICE_NAME, type GitHubService } from \"../service\";\n\nconst spec = requireProviderSpec(\"repositoryState\");\n\nexport const repositoryStateProvider: Provider = {\n name: spec.name,\n description: \"Provides context about the current GitHub repository including recent activity\",\n\n get: async (runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> => {\n const service = runtime.getService<GitHubService>(GITHUB_SERVICE_NAME);\n\n if (!service) {\n return { text: null };\n }\n\n try {\n const config = service.getConfig();\n\n if (!config.owner || !config.repo) {\n return {\n text: \"GitHub repository not configured. Please set GITHUB_OWNER and GITHUB_REPO.\",\n };\n }\n\n const repo = await service.getRepository({\n owner: config.owner,\n repo: config.repo,\n });\n\n const issues = await service.listIssues({\n owner: config.owner,\n repo: config.repo,\n state: \"open\",\n perPage: 5,\n });\n\n const pullRequests = await service.listPullRequests({\n owner: config.owner,\n repo: config.repo,\n state: \"open\",\n perPage: 5,\n });\n\n const parts: string[] = [\n `## GitHub Repository: ${repo.fullName}`,\n \"\",\n `**Description:** ${repo.description ?? \"No description\"}`,\n `**Default Branch:** ${repo.defaultBranch}`,\n `**Language:** ${repo.language ?? \"Not specified\"}`,\n `**Stars:** ${repo.stargazersCount} | **Forks:** ${repo.forksCount}`,\n `**Open Issues:** ${repo.openIssuesCount}`,\n \"\",\n ];\n\n if (issues.length > 0) {\n parts.push(\"### Recent Open Issues\");\n for (const issue of issues) {\n const labels = issue.labels.map((l) => l.name).join(\", \");\n parts.push(`- #${issue.number}: ${issue.title}${labels ? ` [${labels}]` : \"\"}`);\n }\n parts.push(\"\");\n }\n\n if (pullRequests.length > 0) {\n parts.push(\"### Recent Open Pull Requests\");\n for (const pr of pullRequests) {\n const status = pr.draft ? \"[DRAFT] \" : \"\";\n parts.push(`- #${pr.number}: ${status}${pr.title} (${pr.head.ref} → ${pr.base.ref})`);\n }\n parts.push(\"\");\n }\n\n return { text: parts.join(\"\\n\") };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n return {\n text: `Unable to fetch GitHub repository state: ${errorMessage}`,\n };\n }\n },\n};\n\nexport default repositoryStateProvider;\n",
22
22
  "export { default as issueContext, issueContextProvider } from \"./issueContext\";\nexport {\n default as repositoryState,\n repositoryStateProvider,\n} from \"./repositoryState\";\n\nimport { issueContextProvider } from \"./issueContext\";\nimport { repositoryStateProvider } from \"./repositoryState\";\n\nexport const allProviders = [repositoryStateProvider, issueContextProvider];\n"
23
23
  ],
24
- "mappings": ";AAAA,mBAA6B;;;ACA7B;AAAA,YAOE;AAAA;;;ACqBK,IAAM,kBAAkB;AAAA,EAC7B,SAAS;AAAA,EACT,SAAS;AAAA,IACP;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,EACF;AACF;AACO,IAAM,iBAAiB;AAAA,EAC5B,SAAS;AAAA,EACT,SAAS;AAAA,IACP;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAC;AAAA,IACf;AAAA,EACF;AACF;AACO,IAAM,oBAAoB;AAAA,EAC/B,SAAS;AAAA,EACT,WAAW;AAAA,IACT;AAAA,MACE,MAAM;AAAA,MACN,aACE;AAAA,MACF,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,EACF;AACF;AACO,IAAM,mBAAmB;AAAA,EAC9B,SAAS;AAAA,EACT,WAAW;AAAA,IACT;AAAA,MACE,MAAM;AAAA,MACN,aACE;AAAA,MACF,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,EACF;AACF;AACO,IAAM,qBAAqB;AAAA,EAChC,SAAS;AAAA,EACT,YAAY,CAAC;AACf;AACO,IAAM,oBAAoB;AAAA,EAC/B,SAAS;AAAA,EACT,YAAY,CAAC;AACf;AAEO,IAAM,iBAAuC,gBAAgB;AAC7D,IAAM,gBAAsC,eAAe;AAC3D,IAAM,mBAA2C,kBAAkB;AACnE,IAAM,kBAA0C,iBAAiB;AACjE,IAAM,oBAA6C,mBAAmB;AACtE,IAAM,mBAA4C,kBAAkB;;;ACrI3E,IAAM,gBAAgB,IAAI,IAAuB,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AAC7F,IAAM,eAAe,IAAI,IAAuB,cAAc,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AAC3F,IAAM,kBAAkB,IAAI,IAC1B,iBAAiB,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,GAAG,CAAC,CAC/C;AACA,IAAM,iBAAiB,IAAI,IAAyB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AACjG,IAAM,mBAAmB,IAAI,IAC3B,kBAAkB,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,GAAG,CAAC,CAChD;AACA,IAAM,kBAAkB,IAAI,IAC1B,iBAAiB,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,GAAG,CAAC,CAC/C;AAOO,SAAS,aAAa,CAAC,MAAqC;AAAA,EACjE,OAAO,cAAc,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI;AAAA;AASlD,SAAS,iBAAiB,CAAC,MAAyB;AAAA,EACzD,MAAM,OAAO,cAAc,IAAI;AAAA,EAC/B,IAAI,CAAC,MAAM;AAAA,IACT,MAAM,IAAI,MAAM,0BAA0B,MAAM;AAAA,EAClD;AAAA,EACA,OAAO;AAAA;AAQF,SAAS,eAAe,CAAC,MAAuC;AAAA,EACrE,OAAO,gBAAgB,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI;AAAA;AAStD,SAAS,mBAAmB,CAAC,MAA2B;AAAA,EAC7D,MAAM,OAAO,gBAAgB,IAAI;AAAA,EACjC,IAAI,CAAC,MAAM;AAAA,IACT,MAAM,IAAI,MAAM,4BAA4B,MAAM;AAAA,EACpD;AAAA,EACA,OAAO;AAAA;;;AC7ET;AACA;;;ACAA,cAAS;;;ACDF,MAAM,oBAAoB,MAAM;AAAA,EACrC,WAAW,CAAC,SAAiB;AAAA,IAC3B,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA,IACZ,OAAO,eAAe,MAAM,YAAY,SAAS;AAAA;AAAA,EAGnD,WAAW,GAAY;AAAA,IACrB,OAAO;AAAA;AAAA,EAGT,YAAY,GAAkB;AAAA,IAC5B,OAAO;AAAA;AAEX;AAUO,MAAM,oBAAoB,YAAY;AAAA,EAC3C,WAAW,CAAC,SAAiB;AAAA,IAC3B,MAAM,wBAAwB,SAAS;AAAA,IACvC,KAAK,OAAO;AAAA,IACZ,OAAO,eAAe,MAAM,YAAY,SAAS;AAAA;AAErD;AAAA;AAEO,MAAM,4BAA4B,YAAY;AAAA,EACnC;AAAA,EAEhB,WAAW,CAAC,aAAqB;AAAA,IAC/B,MAAM,6BAA6B,aAAa;AAAA,IAChD,KAAK,OAAO;AAAA,IACZ,KAAK,cAAc;AAAA,IACnB,OAAO,eAAe,MAAM,oBAAoB,SAAS;AAAA;AAE7D;AAkCO,MAAM,0BAA0B,YAAY;AAAA,EACjC;AAAA,EAEhB,WAAW,CAAC,MAAc,OAAe,MAAc;AAAA,IACrD,MAAM,mBAAmB,WAAW,SAAS,MAAM;AAAA,IACnD,KAAK,OAAO;AAAA,IACZ,KAAK,OAAO;AAAA,IACZ,OAAO,eAAe,MAAM,kBAAkB,SAAS;AAAA;AAE3D;;;ACpFA;AA+pBO,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,mBAAmB;AAAA,EAC5C,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,kBAAkB;AAC5C,CAAC;AAEM,IAAM,gBAAgB,oBAAoB,OAAO;AAAA,EACtD,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,kBAAkB;AAAA,EAC1C,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,oBAAoB,oBAAoB,OAAO;AAAA,EAC1D,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,mBAAmB;AAAA,EAC5C,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACxC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACrC,WAAW,EAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAEM,IAAM,oBAAoB,oBAAoB,OAAO;AAAA,EAC1D,aAAa,EAAE,OAAO,EAAE,IAAI,GAAG,0BAA0B;AAAA,EACzD,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO,EAAE,KAAK,CAAC,QAAQ,QAAQ,CAAC,EAAE,SAAS;AAAA,EAC3C,aAAa,EAAE,KAAK,CAAC,aAAa,eAAe,UAAU,CAAC,EAAE,SAAS;AAAA,EACvE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACxC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACrC,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAC5C,CAAC;AAEM,IAAM,0BAA0B,oBAAoB,OAAO;AAAA,EAChE,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,mBAAmB;AAAA,EAC5C,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,yBAAyB;AAAA,EACjD,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,yBAAyB;AAAA,EACjD,OAAO,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC5B,qBAAqB,EAAE,QAAQ,EAAE,SAAS;AAC5C,CAAC;AAEM,IAAM,qBAAqB,oBAAoB,OAAO;AAAA,EAC3D,YAAY,EAAE,OAAO,EAAE,IAAI,GAAG,iCAAiC;AAAA,EAC/D,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO,EAAE,KAAK,CAAC,WAAW,mBAAmB,SAAS,CAAC;AAAA,EACvD,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAU,EACP,MACC,EAAE,OAAO;AAAA,IACP,MAAM,EAAE,OAAO;AAAA,IACf,MAAM,EAAE,OAAO;AAAA,IACf,MAAM,EAAE,OAAO;AAAA,IACf,MAAM,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,EAAE,SAAS;AAAA,IACzC,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,IAC/B,WAAW,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,EAAE,SAAS;AAAA,EAChD,CAAC,CACH,EACC,SAAS;AACd,CAAC;AAEM,IAAM,sBAAsB,oBAAoB,OAAO;AAAA,EAC5D,aAAa,EAAE,OAAO,EAAE,IAAI,GAAG,0BAA0B;AAAA,EACzD,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,0BAA0B;AACpD,CAAC;AAEM,IAAM,qBAAqB,oBAAoB,OAAO;AAAA,EAC3D,YAAY,EAAE,OAAO,EAAE,IAAI,GAAG,yBAAyB;AAAA,EACvD,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,wBAAwB;AACrD,CAAC;AAEM,IAAM,qBAAqB,oBAAoB,OAAO;AAAA,EAC3D,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,4BAA4B;AAAA,EACvD,OAAO,EAAE,MACP,EAAE,OAAO;AAAA,IACP,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,uBAAuB;AAAA,IAC/C,SAAS,EAAE,OAAO;AAAA,IAClB,UAAU,EAAE,KAAK,CAAC,SAAS,QAAQ,CAAC,EAAE,SAAS;AAAA,IAC/C,WAAW,EAAE,KAAK,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,SAAS;AAAA,EAC1D,CAAC,CACH;AAAA,EACA,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAG,oBAAoB;AAAA,EAC9C,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,aAAa,EAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAEM,IAAM,yBAAyB,oBAAoB,OAAO;AAAA,EAC/D,YAAY,EAAE,OAAO,EAAE,IAAI,GAAG,iCAAiC;AAAA,EAC/D,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,eAAe,EAAE,OAAO,EAAE,SAAS;AAAA,EACnC,aAAa,EAAE,KAAK,CAAC,SAAS,UAAU,QAAQ,CAAC,EAAE,SAAS;AAAA,EAC5D,KAAK,EAAE,OAAO,EAAE,SAAS;AAC3B,CAAC;AAEM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,UAAU,EAAE,OAAO,EAAE,IAAI,GAAG,uBAAuB;AAAA,EACnD,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,eAAe,EAAE,OAAO,EAAE,SAAS;AAAA,EACnC,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,eAAe,EAAE,OAAO,EAAE,SAAS;AAAA,EACnC,gBAAgB,EAAE,OAAO,EAAE,SAAS;AACtC,CAAC;AAEM,SAAS,eAAe,CAAC,OAA2B;AAAA,EACzD,OAAO,EAAE,cAAc,KAAK;AAAA;;;AFjwB9B,IAAM,eAAe,GAAE,OAAO;AAAA,EAC5B,UAAU,GAAE,OAAO,EAAE,IAAI,GAAG,uBAAuB;AAAA,EACnD,OAAO,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,MAAM,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,QAAQ,GAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,EACjC,eAAe,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,OAAO,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,eAAe,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,gBAAgB,GAAE,OAAO,EAAE,SAAS;AACtC,CAAC;AAAA;AAIM,MAAM,mBAAmB;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,WAAW,CAAC,QAAsB;AAAA,IACxC,KAAK,WAAW,OAAO;AAAA,IACvB,KAAK,QAAQ,OAAO;AAAA,IACpB,KAAK,OAAO,OAAO;AAAA,IACnB,KAAK,SAAS,OAAO;AAAA,IACrB,KAAK,gBAAgB,OAAO;AAAA,IAC5B,KAAK,QAAQ,OAAO;AAAA,IACpB,KAAK,gBAAgB,OAAO;AAAA,IAC5B,KAAK,iBAAiB,OAAO;AAAA;AAAA,SAGxB,WAAW,CAAC,SAA4C;AAAA,IAC7D,MAAM,WAAW,QAAQ,WAAW,kBAAkB;AAAA,IAEtD,IAAI,CAAC,UAAU;AAAA,MACb,MAAM,IAAI,oBAAoB,kBAAkB;AAAA,IAClD;AAAA,IAEA,MAAM,YAAY;AAAA,MAChB;AAAA,MACA,OAAO,QAAQ,WAAW,cAAc,KAAK;AAAA,MAC7C,MAAM,QAAQ,WAAW,aAAa,KAAK;AAAA,MAC3C,QAAQ,QAAQ,WAAW,eAAe,KAAK;AAAA,MAC/C,eAAe,QAAQ,WAAW,uBAAuB,KAAK;AAAA,MAC9D,OAAO,QAAQ,WAAW,eAAe,KAAK;AAAA,MAC9C,eAAe,QAAQ,WAAW,wBAAwB,KAAK;AAAA,MAC/D,gBAAgB,QAAQ,WAAW,wBAAwB,KAAK;AAAA,IAClE;AAAA,IAEA,MAAM,SAAS,aAAa,UAAU,SAAS;AAAA,IAE/C,IAAI,CAAC,OAAO,SAAS;AAAA,MACnB,MAAM,IAAI,YAAY,gBAAgB,OAAO,KAAK,CAAC;AAAA,IACrD;AAAA,IAEA,OAAO,IAAI,mBAAmB,OAAO,IAAI;AAAA;AAAA,SAGpC,YAAY,CAAC,UAA8C;AAAA,IAChE,MAAM,SAAS,aAAa,UAAU;AAAA,SACjC;AAAA,MACH,QAAQ,SAAS,UAAU;AAAA,IAC7B,CAAC;AAAA,IAED,IAAI,CAAC,OAAO,SAAS;AAAA,MACnB,MAAM,IAAI,YAAY,gBAAgB,OAAO,KAAK,CAAC;AAAA,IACrD;AAAA,IAEA,OAAO,IAAI,mBAAmB,OAAO,IAAI;AAAA;AAAA,SAGpC,OAAO,GAAuB;AAAA,IACnC,MAAM,WAAW,QAAQ,IAAI;AAAA,IAE7B,IAAI,CAAC,UAAU;AAAA,MACb,MAAM,IAAI,oBAAoB,kBAAkB;AAAA,IAClD;AAAA,IAEA,MAAM,YAAY;AAAA,MAChB;AAAA,MACA,OAAO,QAAQ,IAAI;AAAA,MACnB,MAAM,QAAQ,IAAI;AAAA,MAClB,QAAQ,QAAQ,IAAI,iBAAiB;AAAA,MACrC,eAAe,QAAQ,IAAI;AAAA,MAC3B,OAAO,QAAQ,IAAI;AAAA,MACnB,eAAe,QAAQ,IAAI;AAAA,MAC3B,gBAAgB,QAAQ,IAAI;AAAA,IAC9B;AAAA,IAEA,MAAM,SAAS,aAAa,UAAU,SAAS;AAAA,IAE/C,IAAI,CAAC,OAAO,SAAS;AAAA,MACnB,MAAM,IAAI,YAAY,gBAAgB,OAAO,KAAK,CAAC;AAAA,IACrD;AAAA,IAEA,OAAO,IAAI,mBAAmB,OAAO,IAAI;AAAA;AAAA,EAG3C,gBAAgB,CAAC,OAAgB,MAAgD;AAAA,IAC/E,MAAM,gBAAgB,SAAS,KAAK;AAAA,IACpC,MAAM,eAAe,QAAQ,KAAK;AAAA,IAElC,IAAI,CAAC,eAAe;AAAA,MAClB,MAAM,IAAI,oBAAoB,sBAAsB;AAAA,IACtD;AAAA,IAEA,IAAI,CAAC,cAAc;AAAA,MACjB,MAAM,IAAI,oBAAoB,oBAAoB;AAAA,IACpD;AAAA,IAEA,OAAO,EAAE,OAAO,eAAe,MAAM,aAAa;AAAA;AAAA,EAGpD,UAAU,GAAY;AAAA,IACpB,OAAO,CAAC,EAAE,KAAK,SAAS,KAAK;AAAA;AAAA,EAG/B,QAAQ,GAAS;AAAA,IACf,IACE,CAAC,KAAK,SAAS,WAAW,MAAM,KAChC,CAAC,KAAK,SAAS,WAAW,MAAM,KAChC,CAAC,KAAK,SAAS,WAAW,MAAM,KAChC,CAAC,KAAK,SAAS,WAAW,MAAM,KAChC,CAAC,KAAK,SAAS,WAAW,MAAM,KAChC,CAAC,KAAK,SAAS,WAAW,aAAa,GACvC;AAAA,MACA,QAAQ,KAAK,qEAAqE;AAAA,IACpF;AAAA,IAEA,IAAI,KAAK,WAAW,KAAK,CAAC,KAAK,gBAAgB;AAAA,MAC7C,MAAM,IAAI,YACR,yEACF;AAAA,IACF;AAAA;AAAA,EAGF,UAAU,GAAmB;AAAA,IAC3B,OAAO;AAAA,MACL,UAAU,KAAK;AAAA,MACf,OAAO,KAAK;AAAA,MACZ,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,eAAe,KAAK;AAAA,MACpB,gBAAgB,KAAK;AAAA,IACvB;AAAA;AAEJ;AAEO,SAAS,oBAAoB,CAAC,SAA4C;AAAA,EAC/E,MAAM,SAAS,mBAAmB,YAAY,OAAO;AAAA,EACrD,OAAO,SAAS;AAAA,EAChB,OAAO;AAAA;;;AD9HF,IAAM,sBAAsB;AAAA;AAE5B,MAAM,sBAAsB,QAAQ;AAAA,SACzB,cAAc;AAAA,EAEtB,UAA0B;AAAA,EAC1B,UAAqC;AAAA,EAI7C,wBACE;AAAA,MAEE,IAAI,GAAW;AAAA,IACjB,OAAO;AAAA;AAAA,EAGT,SAAS,GAAuB;AAAA,IAC9B,IAAI,CAAC,KAAK,SAAS;AAAA,MACjB,MAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAAA,IACA,OAAO,KAAK;AAAA;AAAA,EAGN,SAAS,GAAY;AAAA,IAC3B,IAAI,CAAC,KAAK,SAAS;AAAA,MACjB,MAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAAA,IACA,OAAO,KAAK;AAAA;AAAA,OAGR,MAAK,CAAC,SAAuC;AAAA,IACjD,OAAO,KAAK,4BAA4B;AAAA,IAExC,KAAK,UAAU,qBAAqB,OAAO;AAAA,IAC3C,MAAM,WAAW,KAAK,QAAQ,WAAW;AAAA,IACzC,KAAK,SAAS;AAAA,MACZ,UAAU,SAAS,YAAY;AAAA,MAC/B,OAAO,SAAS,SAAS;AAAA,MACzB,MAAM,SAAS,QAAQ;AAAA,MACvB,QAAQ,SAAS,UAAU;AAAA,MAC3B,eAAe,SAAS,iBAAiB;AAAA,MACzC,OAAO,SAAS,SAAS;AAAA,MACzB,eAAe,SAAS,iBAAiB;AAAA,MACzC,gBAAgB,SAAS,kBAAkB;AAAA,IAC7C;AAAA,IAEA,KAAK,UAAU,IAAI,QAAQ;AAAA,MACzB,MAAM,KAAK,QAAQ;AAAA,MACnB,WAAW;AAAA,IACb,CAAC;AAAA,IAED,QAAQ,MAAM,SAAS,MAAM,KAAK,QAAQ,MAAM,iBAAiB;AAAA,IACjE,OAAO,KAAK,6CAA6C,KAAK,OAAO;AAAA;AAAA,OAGxD,KAAI,GAAkB;AAAA,IACnC,OAAO,KAAK,4BAA4B;AAAA,IACxC,KAAK,UAAU;AAAA,IACf,KAAK,UAAU;AAAA,IACf,KAAK,SAAS;AAAA,IACd,OAAO,KAAK,wBAAwB;AAAA;AAAA,OAGhC,cAAa,CAAC,QAAkD;AAAA,IACpE,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,MAAM,IAAI,EAAE,OAAO,KAAK,CAAC;AAAA,IACvD,OAAO,KAAK,cAAc,IAAI;AAAA;AAAA,OAG1B,iBAAgB,CACpB,UACA,SAK6B;AAAA,IAC7B,MAAM,SAAS,KAAK,UAAU;AAAA,IAE9B,QAAQ,SAAS,WACb,MAAM,OAAO,MAAM,YAAY;AAAA,MAC7B;AAAA,MACA,MAAM,SAAS,QAAQ;AAAA,MACvB,UAAU,SAAS,WAAW;AAAA,MAC9B,MAAM,SAAS,QAAQ;AAAA,IACzB,CAAC,IACD,MAAM,OAAO,MAAM,yBAAyB;AAAA,MAC1C,MAAM,SAAS,QAAQ;AAAA,MACvB,UAAU,SAAS,WAAW;AAAA,MAC9B,MAAM,SAAS,QAAQ;AAAA,IACzB,CAAC;AAAA,IAEL,OAAO,KAAK,IAAI,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC;AAAA;AAAA,OAGxC,YAAW,CAAC,QAAiD;AAAA,IACjE,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,OAAO,OAAO;AAAA,MAC1C;AAAA,MACA;AAAA,MACA,OAAO,OAAO;AAAA,MACd,MAAM,OAAO;AAAA,MACb,WAAW,OAAO;AAAA,MAClB,QAAQ,OAAO;AAAA,MACf,WAAW,OAAO;AAAA,IACpB,CAAC;AAAA,IAED,OAAO,KAAK,SAAS,IAAI;AAAA;AAAA,OAGrB,SAAQ,CAAC,QAAuE;AAAA,IACpF,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,OAAO,IAAI;AAAA,MACvC;AAAA,MACA;AAAA,MACA,cAAc,OAAO;AAAA,IACvB,CAAC;AAAA,IAED,OAAO,KAAK,SAAS,IAAI;AAAA;AAAA,OAGrB,YAAW,CAAC,QAAiD;AAAA,IACjE,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,OAAO,OAAO;AAAA,MAC1C;AAAA,MACA;AAAA,MACA,cAAc,OAAO;AAAA,MACrB,OAAO,OAAO;AAAA,MACd,MAAM,OAAO;AAAA,MACb,OAAO,OAAO;AAAA,MACd,cAAc,OAAO;AAAA,MACrB,WAAW,OAAO;AAAA,MAClB,QAAQ,OAAO;AAAA,MACf,WAAW,OAAO,aAAa;AAAA,IACjC,CAAC;AAAA,IAED,OAAO,KAAK,SAAS,IAAI;AAAA;AAAA,OAGrB,WAAU,CAAC,QAAkD;AAAA,IACjE,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,OAAO,YAAY;AAAA,MAC/C;AAAA,MACA;AAAA,MACA,OAAO,OAAO,SAAS;AAAA,MACvB,QAAQ,OAAO;AAAA,MACf,MAAM,OAAO,QAAQ;AAAA,MACrB,WAAW,OAAO,aAAa;AAAA,MAC/B,UAAU,OAAO;AAAA,MACjB,SAAS,OAAO;AAAA,MAChB,WAAW,OAAO;AAAA,MAClB,UAAU,OAAO,WAAW;AAAA,MAC5B,MAAM,OAAO,QAAQ;AAAA,IACvB,CAAC;AAAA,IAED,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,MAAM,YAAY,EAAE,IAAI,CAAC,UAAU,KAAK,SAAS,KAAK,CAAC;AAAA;AAAA,OAGlF,WAAU,CACd,QAIsB;AAAA,IACtB,OAAO,KAAK,YAAY;AAAA,SACnB;AAAA,MACH,OAAO;AAAA,MACP,aAAa,OAAO,UAAU;AAAA,IAChC,CAAC;AAAA;AAAA,OAGG,YAAW,CAAC,QAAuE;AAAA,IACvF,OAAO,KAAK,YAAY;AAAA,SACnB;AAAA,MACH,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA;AAAA,OAGG,kBAAiB,CAAC,QAA6D;AAAA,IACnF,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,MAAM,OAAO;AAAA,MACzC;AAAA,MACA;AAAA,MACA,OAAO,OAAO;AAAA,MACd,MAAM,OAAO;AAAA,MACb,MAAM,OAAO;AAAA,MACb,MAAM,OAAO;AAAA,MACb,OAAO,OAAO;AAAA,MACd,uBAAuB,OAAO;AAAA,IAChC,CAAC;AAAA,IAED,OAAO,KAAK,eAAe,IAAI;AAAA;AAAA,OAG3B,eAAc,CAAC,QAA4E;AAAA,IAC/F,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,MAAM,IAAI;AAAA,MACtC;AAAA,MACA;AAAA,MACA,aAAa,OAAO;AAAA,IACtB,CAAC;AAAA,IAED,OAAO,KAAK,eAAe,IAAI;AAAA;AAAA,OAG3B,kBAAiB,CAAC,QAA6D;AAAA,IACnF,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,MAAM,OAAO;AAAA,MACzC;AAAA,MACA;AAAA,MACA,aAAa,OAAO;AAAA,MACpB,OAAO,OAAO;AAAA,MACd,MAAM,OAAO;AAAA,MACb,OAAO,OAAO;AAAA,MACd,MAAM,OAAO;AAAA,MACb,uBAAuB,OAAO;AAAA,IAChC,CAAC;AAAA,IAED,OAAO,KAAK,eAAe,IAAI;AAAA;AAAA,OAG3B,iBAAgB,CAAC,QAA8D;AAAA,IACnF,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,MAAM,KAAK;AAAA,MACvC;AAAA,MACA;AAAA,MACA,OAAO,OAAO,SAAS;AAAA,MACvB,MAAM,OAAO;AAAA,MACb,MAAM,OAAO;AAAA,MACb,MAAM,OAAO,QAAQ;AAAA,MACrB,WAAW,OAAO,aAAa;AAAA,MAC/B,UAAU,OAAO,WAAW;AAAA,MAC5B,MAAM,OAAO,QAAQ;AAAA,IACvB,CAAC;AAAA,IAED,OAAO,KAAK,IAAI,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;AAAA;AAAA,OAG3C,iBAAgB,CACpB,QAC4D;AAAA,IAC5D,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,MAAM,MAAM;AAAA,MACxC;AAAA,MACA;AAAA,MACA,aAAa,OAAO;AAAA,MACpB,cAAc,OAAO;AAAA,MACrB,gBAAgB,OAAO;AAAA,MACvB,cAAc,OAAO,eAAe;AAAA,MACpC,KAAK,OAAO;AAAA,IACd,CAAC;AAAA,IAED,OAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,QAAQ,KAAK;AAAA,MACb,SAAS,KAAK;AAAA,IAChB;AAAA;AAAA,OAGI,iBAAgB,CACpB,QAC4B;AAAA,IAC5B,OAAO,KAAK,kBAAkB;AAAA,SACzB;AAAA,MACH,OAAO;AAAA,IACT,CAAC;AAAA;AAAA,OAGG,aAAY,CAAC,QAAmD;AAAA,IACpE,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,MAAM,aAAa;AAAA,MAC/C;AAAA,MACA;AAAA,MACA,aAAa,OAAO;AAAA,MACpB,MAAM,OAAO;AAAA,MACb,OAAO,OAAO;AAAA,MACd,WAAW,OAAO;AAAA,MAClB,UAAU,OAAO,UAAU,IAAI,CAAC,OAAO;AAAA,QACrC,MAAM,EAAE;AAAA,QACR,MAAM,EAAE;AAAA,QACR,MAAM,EAAE;AAAA,QACR,MAAM,EAAE;AAAA,QACR,YAAY,EAAE;AAAA,QACd,YAAY,EAAE;AAAA,MAChB,EAAE;AAAA,IACJ,CAAC;AAAA,IAED,OAAO,KAAK,UAAU,IAAI;AAAA;AAAA,OAGtB,YAAW,CAAC,QAAyE;AAAA,IACzF,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,MAAM,YAAY;AAAA,MAC9C;AAAA,MACA;AAAA,MACA,aAAa,OAAO;AAAA,IACtB,CAAC;AAAA,IAED,OAAO,KAAK,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;AAAA;AAAA,OAGpC,cAAa,CAAC,QAAqD;AAAA,IACvE,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,OAAO,cAAc;AAAA,MACjD;AAAA,MACA;AAAA,MACA,cAAc,OAAO;AAAA,MACrB,MAAM,OAAO;AAAA,IACf,CAAC;AAAA,IAED,OAAO,KAAK,WAAW,IAAI;AAAA;AAAA,OAGvB,aAAY,CAChB,QAK0B;AAAA,IAC1B,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,OAAO,aAAa;AAAA,MAChD;AAAA,MACA;AAAA,MACA,cAAc,OAAO;AAAA,MACrB,UAAU,OAAO,WAAW;AAAA,MAC5B,MAAM,OAAO,QAAQ;AAAA,IACvB,CAAC;AAAA,IAED,OAAO,KAAK,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;AAAA;AAAA,OAGrC,aAAY,CAAC,QAAmD;AAAA,IACpE,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,IAAI;AAAA,IAEJ,IAAI,OAAO,QAAQ,MAAM,iBAAiB,GAAG;AAAA,MAC3C,MAAM,OAAO;AAAA,IACf,EAAO;AAAA,MACL,QAAQ,MAAM,YAAY,MAAM,OAAO,IAAI,OAAO;AAAA,QAChD;AAAA,QACA;AAAA,QACA,KAAK,SAAS,OAAO;AAAA,MACvB,CAAC;AAAA,MACD,MAAM,QAAQ,OAAO;AAAA;AAAA,IAGvB,MAAM,OAAO,IAAI,UAAU;AAAA,MACzB;AAAA,MACA;AAAA,MACA,KAAK,cAAc,OAAO;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,IAED,OAAO;AAAA,MACL,MAAM,OAAO;AAAA,MACb;AAAA,MACA,WAAW;AAAA,IACb;AAAA;AAAA,OAGI,aAAY,CAAC,QAA+D;AAAA,IAChF,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,MAAM,OAAO,IAAI,UAAU;AAAA,MACzB;AAAA,MACA;AAAA,MACA,KAAK,SAAS,OAAO;AAAA,IACvB,CAAC;AAAA;AAAA,OAGG,aAAY,CAChB,QACyB;AAAA,IACzB,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,MAAM,aAAa;AAAA,MAC/C;AAAA,MACA;AAAA,MACA,UAAU,OAAO,WAAW;AAAA,MAC5B,MAAM,OAAO,QAAQ;AAAA,IACvB,CAAC;AAAA,IAED,OAAO,KAAK,IAAI,CAAC,OAAO;AAAA,MACtB,MAAM,EAAE;AAAA,MACR,KAAK,EAAE,OAAO;AAAA,MACd,WAAW,EAAE;AAAA,IACf,EAAE;AAAA;AAAA,OAGE,QAAO,CAAC,QAAmD;AAAA,IAC/D,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,MAAM,WAAW;AAAA,MAC7C;AAAA,MACA;AAAA,MACA,MAAM,OAAO;AAAA,MACb,KAAK,OAAO;AAAA,IACd,CAAC;AAAA,IAED,IAAI,MAAM,QAAQ,IAAI,GAAG;AAAA,MACvB,MAAM,IAAI,kBAAkB,GAAG,OAAO,mCAAmC,OAAO,IAAI;AAAA,IACtF;AAAA,IAEA,IAAI,KAAK,SAAS,QAAQ;AAAA,MACxB,MAAM,IAAI,kBAAkB,GAAG,OAAO,sBAAsB,OAAO,IAAI;AAAA,IACzE;AAAA,IAEA,IAAI,UAAU;AAAA,IACd,IAAI,aAAa,QAAQ,KAAK,SAAS;AAAA,MACrC,UAAU,OAAO,KAAK,KAAK,SAAS,QAAQ,EAAE,SAAS,OAAO;AAAA,IAChE;AAAA,IAEA,OAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX;AAAA,MACA,KAAK,KAAK;AAAA,MACV,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,UAAU,cAAc,OAAQ,KAAK,YAAY,WAAY;AAAA,MAC7D,SAAS,KAAK,YAAY;AAAA,MAC1B,aAAa,KAAK;AAAA,IACpB;AAAA;AAAA,OAGI,cAAa,CAAC,QAAwD;AAAA,IAC1E,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,QAAQ,SAAS,MAAM,OAAO,MAAM,WAAW;AAAA,MAC7C;AAAA,MACA;AAAA,MACA,MAAM,OAAO;AAAA,MACb,KAAK,OAAO;AAAA,IACd,CAAC;AAAA,IAED,IAAI,CAAC,MAAM,QAAQ,IAAI,GAAG;AAAA,MACxB,MAAM,IAAI,kBAAkB,GAAG,OAAO,mCAAmC,OAAO,IAAI;AAAA,IACtF;AAAA,IAEA,OAAO,KAAK,IAAI,CAAC,WAAW;AAAA,MAC1B,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,KAAK,MAAM;AAAA,MACX,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,SAAS,MAAM,YAAY;AAAA,MAC3B,aAAa,MAAM;AAAA,IACrB,EAAE;AAAA;AAAA,OAGE,aAAY,CAAC,QAAmD;AAAA,IACpE,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAElD,IAAI,YAAY,OAAO;AAAA,IACvB,IAAI,CAAC,WAAW;AAAA,MACd,QAAQ,MAAM,YAAY,MAAM,OAAO,IAAI,OAAO;AAAA,QAChD;AAAA,QACA;AAAA,QACA,KAAK,SAAS,OAAO;AAAA,MACvB,CAAC;AAAA,MACD,YAAY,QAAQ,OAAO;AAAA,IAC7B;AAAA,IAEA,QAAQ,MAAM,iBAAiB,MAAM,OAAO,IAAI,UAAU;AAAA,MACxD;AAAA,MACA;AAAA,MACA,YAAY;AAAA,IACd,CAAC;AAAA,IAED,MAAM,YAKD,CAAC;AAAA,IAEN,WAAW,QAAQ,OAAO,OAAO;AAAA,MAC/B,IAAI,KAAK,cAAc,UAAU;AAAA,QAC/B;AAAA,MACF;AAAA,MAEA,QAAQ,MAAM,SAAS,MAAM,OAAO,IAAI,WAAW;AAAA,QACjD;AAAA,QACA;AAAA,QACA,SAAS,KAAK;AAAA,QACd,UAAU,KAAK,YAAY;AAAA,MAC7B,CAAC;AAAA,MAED,UAAU,KAAK;AAAA,QACb,MAAM,KAAK;AAAA,QACX,MAAM;AAAA,QACN,MAAM;AAAA,QACN,KAAK,KAAK;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,IAEA,QAAQ,MAAM,YAAY,MAAM,OAAO,IAAI,WAAW;AAAA,MACpD;AAAA,MACA;AAAA,MACA,WAAW,aAAa,KAAK;AAAA,MAC7B,MAAM;AAAA,IACR,CAAC;AAAA,IAED,QAAQ,MAAM,WAAW,MAAM,OAAO,IAAI,aAAa;AAAA,MACrD;AAAA,MACA;AAAA,MACA,SAAS,OAAO;AAAA,MAChB,MAAM,QAAQ;AAAA,MACd,SAAS,CAAC,SAAS;AAAA,MACnB,QAAQ,OAAO,aACX;AAAA,QACE,MAAM,OAAO;AAAA,QACb,OAAO,OAAO,eAAe,GAAG,OAAO;AAAA,MACzC,IACA;AAAA,IACN,CAAC;AAAA,IAED,MAAM,OAAO,IAAI,UAAU;AAAA,MACzB;AAAA,MACA;AAAA,MACA,KAAK,SAAS,OAAO;AAAA,MACrB,KAAK,OAAO;AAAA,IACd,CAAC;AAAA,IAED,OAAO;AAAA,MACL,KAAK,OAAO;AAAA,MACZ,SAAS,OAAO;AAAA,MAChB,QAAQ;AAAA,QACN,MAAM,OAAO,QAAQ,QAAQ;AAAA,QAC7B,OAAO,OAAO,QAAQ,SAAS;AAAA,QAC/B,MAAM,OAAO,QAAQ,QAAQ,IAAI,KAAK,EAAE,YAAY;AAAA,MACtD;AAAA,MACA,WAAW;AAAA,QACT,MAAM,OAAO,WAAW,QAAQ;AAAA,QAChC,OAAO,OAAO,WAAW,SAAS;AAAA,QAClC,MAAM,OAAO,WAAW,QAAQ,IAAI,KAAK,EAAE,YAAY;AAAA,MACzD;AAAA,MACA,WAAW,OAAO,QAAQ,QAAQ,IAAI,KAAK,EAAE,YAAY;AAAA,MACzD,SAAS,OAAO;AAAA,MAChB,SAAS,OAAO,QAAQ,IAAI,CAAC,MAAM,EAAE,GAAG;AAAA,IAC1C;AAAA;AAAA,OAGI,YAAW,CACf,QAMyB;AAAA,IACzB,MAAM,SAAS,KAAK,UAAU;AAAA,IAC9B,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM;AAAA,IAClD,MAAM,SAAS,OAAO,UAAU,KAAK,SAAS,UAAU;AAAA,IAExD,QAAQ,SAAS,MAAM,OAAO,MAAM,YAAY;AAAA,MAC9C;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL,MAAM,OAAO;AAAA,MACb,UAAU,OAAO,WAAW;AAAA,MAC5B,MAAM,OAAO,QAAQ;AAAA,IACvB,CAAC;AAAA,IAED,OAAO,KAAK,IAAI,CAAC,OAAO;AAAA,MACtB,KAAK,EAAE;AAAA,MACP,SAAS,EAAE,OAAO;AAAA,MAClB,QAAQ;AAAA,QACN,MAAM,EAAE,OAAO,QAAQ,QAAQ;AAAA,QAC/B,OAAO,EAAE,OAAO,QAAQ,SAAS;AAAA,QACjC,MAAM,EAAE,OAAO,QAAQ,QAAQ;AAAA,MACjC;AAAA,MACA,WAAW;AAAA,QACT,MAAM,EAAE,OAAO,WAAW,QAAQ;AAAA,QAClC,OAAO,EAAE,OAAO,WAAW,SAAS;AAAA,QACpC,MAAM,EAAE,OAAO,WAAW,QAAQ;AAAA,MACpC;AAAA,MACA,WAAW,EAAE,OAAO,QAAQ,QAAQ;AAAA,MACpC,SAAS,EAAE;AAAA,MACX,SAAS,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,GAAG;AAAA,IACrC,EAAE;AAAA;AAAA,OAGE,qBAAoB,GAAwB;AAAA,IAChD,MAAM,SAAS,KAAK,UAAU;AAAA,IAE9B,QAAQ,SAAS,MAAM,OAAO,MAAM,iBAAiB;AAAA,IACrD,OAAO,KAAK,QAAQ,IAAI;AAAA;AAAA,OAGpB,QAAO,CAAC,UAAuC;AAAA,IACnD,MAAM,SAAS,KAAK,UAAU;AAAA,IAE9B,QAAQ,SAAS,MAAM,OAAO,MAAM,cAAc,EAAE,SAAS,CAAC;AAAA,IAC9D,OAAO,KAAK,QAAQ,IAAI;AAAA;AAAA,EAGlB,cAAc,CAAC,QAGrB;AAAA,IACA,MAAM,QAAQ,OAAO,SAAS,KAAK,SAAS;AAAA,IAC5C,MAAM,OAAO,OAAO,QAAQ,KAAK,SAAS;AAAA,IAE1C,IAAI,CAAC,SAAS,CAAC,MAAM;AAAA,MACnB,MAAM,IAAI,MACR,wFACF;AAAA,IACF;AAAA,IAEA,OAAO,EAAE,OAAO,KAAK;AAAA;AAAA,EAGf,aAAa,CAAC,MAAiC;AAAA,IACrD,MAAM,IAAI;AAAA,IACV,MAAM,UAAU,EAAE;AAAA,IAClB,OAAO;AAAA,MACL,IAAI,EAAE;AAAA,MACN,MAAM,EAAE;AAAA,MACR,UAAU,EAAE;AAAA,MACZ,OAAO,KAAK,QAAQ,EAAE,KAAK;AAAA,MAC3B,aAAa,EAAE;AAAA,MACf,SAAS,EAAE;AAAA,MACX,MAAM,EAAE;AAAA,MACR,eAAe,EAAE;AAAA,MACjB,UAAU,EAAE;AAAA,MACZ,iBAAiB,EAAE;AAAA,MACnB,YAAY,EAAE;AAAA,MACd,iBAAiB,EAAE;AAAA,MACnB,eAAe,EAAE;AAAA,MACjB,SAAS,EAAE;AAAA,MACX,UAAU,EAAE;AAAA,MACZ,QAAQ,EAAE;AAAA,MACV,WAAW,EAAE;AAAA,MACb,WAAW,EAAE;AAAA,MACb,UAAU,EAAE;AAAA,MACZ,QAAS,EAAE,UAAuB,CAAC;AAAA,MACnC,SAAS,UACL;AAAA,QACE,KAAK,QAAQ;AAAA,QACb,MAAM,QAAQ;AAAA,QACd,QAAQ,QAAQ;AAAA,QAChB,KAAK,QAAQ;AAAA,MACf,IACA;AAAA,IACN;AAAA;AAAA,EAGM,OAAO,CAAC,MAA2B;AAAA,IACzC,MAAM,IAAI;AAAA,IACV,OAAO;AAAA,MACL,IAAI,EAAE;AAAA,MACN,OAAO,EAAE;AAAA,MACT,MAAO,EAAE,QAA0B;AAAA,MACnC,WAAW,EAAE;AAAA,MACb,SAAS,EAAE;AAAA,MACX,MAAM,EAAE;AAAA,IACV;AAAA;AAAA,EAGM,QAAQ,CAAC,MAA4B;AAAA,IAC3C,MAAM,IAAI;AAAA,IACV,OAAO;AAAA,MACL,QAAQ,EAAE;AAAA,MACV,OAAO,EAAE;AAAA,MACT,MAAM,EAAE;AAAA,MACR,OAAO,EAAE;AAAA,MACT,aAAc,EAAE,gBAA4C;AAAA,MAC5D,MAAM,KAAK,QAAQ,EAAE,IAAI;AAAA,MACzB,YAAa,EAAE,aAA2B,CAAC,GAAG,IAAI,CAAC,MAAe,KAAK,QAAQ,CAAC,CAAC;AAAA,MACjF,SAAU,EAAE,UAAwB,CAAC,GAAG,IAAI,CAAC,MAAe,KAAK,SAAS,CAAC,CAAC;AAAA,MAC5E,WAAW,EAAE,YAAY,KAAK,aAAa,EAAE,SAAS,IAAI;AAAA,MAC1D,WAAW,EAAE;AAAA,MACb,WAAW,EAAE;AAAA,MACb,UAAU,EAAE;AAAA,MACZ,SAAS,EAAE;AAAA,MACX,UAAU,EAAE;AAAA,MACZ,eAAe,CAAC,CAAC,EAAE;AAAA,IACrB;AAAA;AAAA,EAGM,QAAQ,CAAC,MAMf;AAAA,IACA,IAAI,OAAO,SAAS,UAAU;AAAA,MAC5B,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,MAAM,IAAI;AAAA,IACV,OAAO;AAAA,MACL,IAAI,EAAE;AAAA,MACN,MAAM,EAAE;AAAA,MACR,OAAO,EAAE;AAAA,MACT,aAAa,EAAE;AAAA,MACf,SAAS,EAAE;AAAA,IACb;AAAA;AAAA,EAGM,YAAY,CAAC,MAWnB;AAAA,IACA,MAAM,IAAI;AAAA,IACV,OAAO;AAAA,MACL,QAAQ,EAAE;AAAA,MACV,OAAO,EAAE;AAAA,MACT,aAAa,EAAE;AAAA,MACf,OAAO,EAAE;AAAA,MACT,OAAO,EAAE;AAAA,MACT,WAAW,EAAE;AAAA,MACb,WAAW,EAAE;AAAA,MACb,UAAU,EAAE;AAAA,MACZ,YAAY,EAAE;AAAA,MACd,cAAc,EAAE;AAAA,IAClB;AAAA;AAAA,EAGM,cAAc,CAAC,MAAkC;AAAA,IACvD,MAAM,IAAI;AAAA,IACV,MAAM,OAAO,EAAE;AAAA,IACf,MAAM,OAAO,EAAE;AAAA,IACf,MAAM,WAAW,KAAK;AAAA,IACtB,MAAM,WAAW,KAAK;AAAA,IACtB,MAAM,gBAAgB,UAAU;AAAA,IAChC,MAAM,gBAAgB,UAAU;AAAA,IAChC,OAAO;AAAA,MACL,QAAQ,EAAE;AAAA,MACV,OAAO,EAAE;AAAA,MACT,MAAM,EAAE;AAAA,MACR,OAAO,EAAE;AAAA,MACT,OAAQ,EAAE,SAAqB;AAAA,MAC/B,QAAS,EAAE,UAAsB;AAAA,MACjC,WAAW,EAAE;AAAA,MACb,gBAAiB,EAAE,mBAAsC;AAAA,MACzD,MAAM,KAAK,QAAQ,EAAE,IAAI;AAAA,MACzB,MAAM;AAAA,QACJ,KAAK,KAAK;AAAA,QACV,OAAO,KAAK;AAAA,QACZ,KAAK,KAAK;AAAA,QACV,MAAM,WACF,EAAE,OAAO,eAAe,OAAiB,MAAM,SAAS,KAAe,IACvE;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,KAAK,KAAK;AAAA,QACV,OAAO,KAAK;AAAA,QACZ,KAAK,KAAK;AAAA,QACV,MAAM,WACF,EAAE,OAAO,eAAe,OAAiB,MAAM,SAAS,KAAe,IACvE;AAAA,MACN;AAAA,MACA,YAAa,EAAE,aAA2B,CAAC,GAAG,IAAI,CAAC,MAAe,KAAK,QAAQ,CAAC,CAAC;AAAA,MACjF,qBAAsB,EAAE,uBAAqC,CAAC,GAAG,IAAI,CAAC,MACpE,KAAK,QAAQ,CAAC,CAChB;AAAA,MACA,SAAU,EAAE,UAAwB,CAAC,GAAG,IAAI,CAAC,MAAe,KAAK,SAAS,CAAC,CAAC;AAAA,MAC5E,WAAW,EAAE,YAAY,KAAK,aAAa,EAAE,SAAS,IAAI;AAAA,MAC1D,WAAW,EAAE;AAAA,MACb,WAAW,EAAE;AAAA,MACb,UAAU,EAAE;AAAA,MACZ,UAAU,EAAE;AAAA,MACZ,SAAS,EAAE;AAAA,MACX,SAAU,EAAE,WAAsB;AAAA,MAClC,WAAY,EAAE,aAAwB;AAAA,MACtC,WAAY,EAAE,aAAwB;AAAA,MACtC,cAAe,EAAE,iBAA4B;AAAA,IAC/C;AAAA;AAAA,EAGM,SAAS,CAAC,MAA6B;AAAA,IAC7C,MAAM,IAAI;AAAA,IACV,OAAO;AAAA,MACL,IAAI,EAAE;AAAA,MACN,MAAM,KAAK,QAAQ,EAAE,IAAI;AAAA,MACzB,MAAM,EAAE;AAAA,MACR,OAAO,EAAE;AAAA,MACT,UAAU,EAAE;AAAA,MACZ,SAAS,EAAE;AAAA,MACX,aAAa,EAAE;AAAA,IACjB;AAAA;AAAA,EAGM,UAAU,CAAC,MAA8B;AAAA,IAC/C,MAAM,IAAI;AAAA,IACV,OAAO;AAAA,MACL,IAAI,EAAE;AAAA,MACN,MAAM,EAAE;AAAA,MACR,MAAM,KAAK,QAAQ,EAAE,IAAI;AAAA,MACzB,WAAW,EAAE;AAAA,MACb,WAAW,EAAE;AAAA,MACb,SAAS,EAAE;AAAA,IACb;AAAA;AAEJ;;;AHp2BA,IAAM,OAAO,kBAAkB,eAAe;AAE9C,IAAM,WAA8B;AAAA,EAClC;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,sBAAsB;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,sBAAsB;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,qBAA6B;AAAA,EACxC,MAAM;AAAA,EACN,SAAS,KAAK,UAAU,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC;AAAA,EAC7C,aAAa,KAAK;AAAA,EAElB,UAAU,OAAO,SAAwB,SAAiB,WAAqC;AAAA,IAC7F,MAAM,UAAU,QAAQ,WAAW,mBAAmB;AAAA,IACtD,IAAI,CAAC,SAAS;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IAEA,MAAM,OAAQ,QAAQ,QAAoB,MAAM,YAAY,KAAK;AAAA,IACjE,OAAO,KAAK,SAAS,QAAQ,KAAK,KAAK,SAAS,MAAM,KAAK,KAAK,SAAS,UAAU;AAAA;AAAA,EAGrF,SAAS,OACP,SACA,UACA,OACA,UACA,aAC0B;AAAA,IAC1B,MAAM,UAAU,QAAQ,WAA0B,mBAAmB;AAAA,IAErE,IAAI,CAAC,SAAS;AAAA,MACZ,QAAO,MAAM,8BAA8B;AAAA,MAC3C,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,MACA,OAAO,EAAE,SAAS,MAAM;AAAA,IAC1B;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,SAA6B;AAAA,QACjC,OAAQ,OAAO,SAAoB,QAAQ,UAAU,EAAE,SAAS;AAAA,QAChE,MAAO,OAAO,QAAmB,QAAQ,UAAU,EAAE,QAAQ;AAAA,QAC7D,YAAa,OAAO,cAAyB;AAAA,QAC7C,SAAU,OAAO,WAAsB,QAAQ,UAAU,EAAE,UAAU;AAAA,MACvE;AAAA,MAEA,MAAM,aAAa,mBAAmB,UAAU,MAAM;AAAA,MACtD,IAAI,CAAC,WAAW,SAAS;AAAA,QACvB,MAAM,SAAS,gBAAgB,WAAW,KAAK;AAAA,QAC/C,QAAO,MAAM,8BAA8B,QAAQ;AAAA,QACnD,IAAI,UAAU;AAAA,UACZ,MAAM,SAAS;AAAA,YACb,MAAM,4DAA4D;AAAA,UACpE,CAAC;AAAA,QACH;AAAA,QACA,OAAO,EAAE,SAAS,MAAM;AAAA,MAC1B;AAAA,MAEA,MAAM,SAAS,MAAM,QAAQ,aAAa,MAAM;AAAA,MAEhD,QAAO,KAAK,kBAAkB,OAAO,aAAa,OAAO,SAAS;AAAA,MAElE,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,mBAAmB,OAAO,cAAc,OAAO;AAAA;AAAA,iBAA8B,OAAO,IAAI,MAAM,GAAG,CAAC;AAAA,QAC1G,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,OAAO;AAAA,MACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC9D,QAAO,MAAM,4BAA4B,cAAc;AAAA,MAEvD,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,gCAAgC;AAAA,QACxC,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,MAAM;AAAA;AAAA;AAAA,EAI5B;AACF;;AOlIA;AAAA,YAOE;AAAA;AAQF,IAAM,QAAO,kBAAkB,gBAAgB;AAE/C,IAAM,YAA8B;AAAA,EAClC;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,uBAAuB;AAAA,MACnC;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,uBAAuB;AAAA,MACnC;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,sBAA8B;AAAA,EACzC,MAAM;AAAA,EACN,SAAS,MAAK,UAAU,CAAC,GAAG,MAAK,OAAO,IAAI,CAAC;AAAA,EAC7C,aAAa,MAAK;AAAA,EAElB,UAAU,OAAO,SAAwB,SAAiB,WAAqC;AAAA,IAC7F,MAAM,UAAU,QAAQ,WAAW,mBAAmB;AAAA,IACtD,IAAI,CAAC,SAAS;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IAEA,MAAM,OAAQ,QAAQ,QAAoB,MAAM,YAAY,KAAK;AAAA,IACjE,OAAO,KAAK,SAAS,SAAS,KAAK,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,SAAS;AAAA;AAAA,EAGtF,SAAS,OACP,SACA,SACA,OACA,UACA,aAC0B;AAAA,IAC1B,MAAM,UAAU,QAAQ,WAA0B,mBAAmB;AAAA,IAErE,IAAI,CAAC,SAAS;AAAA,MACZ,QAAO,MAAM,8BAA8B;AAAA,MAC3C,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,MACA,OAAO,EAAE,SAAS,MAAM;AAAA,IAC1B;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,UAAU,QAAQ;AAAA,MACxB,MAAM,OAAO,QAAQ,QAAQ;AAAA,MAE7B,MAAM,SAA8B;AAAA,QAClC,OAAQ,OAAO,SAAoB,QAAQ,UAAU,EAAE,SAAS;AAAA,QAChE,MAAO,OAAO,QAAmB,QAAQ,UAAU,EAAE,QAAQ;AAAA,QAC7D,aAAc,OAAO,eAA0B;AAAA,QAC/C,MAAO,OAAO,QAAmB;AAAA,MACnC;AAAA,MAEA,MAAM,aAAa,oBAAoB,UAAU,MAAM;AAAA,MACvD,IAAI,CAAC,WAAW,SAAS;AAAA,QACvB,MAAM,SAAS,gBAAgB,WAAW,KAAK;AAAA,QAC/C,QAAO,MAAM,+BAA+B,QAAQ;AAAA,QACpD,IAAI,UAAU;AAAA,UACZ,MAAM,SAAS;AAAA,YACb,MAAM,6DAA6D;AAAA,UACrE,CAAC;AAAA,QACH;AAAA,QACA,OAAO,EAAE,SAAS,MAAM;AAAA,MAC1B;AAAA,MAEA,MAAM,UAAU,MAAM,QAAQ,cAAc,MAAM;AAAA,MAElD,QAAO,KAAK,uBAAuB,OAAO,aAAa;AAAA,MAEvD,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,qBAAqB,OAAO;AAAA;AAAA,cAA+B,QAAQ;AAAA,QAC3E,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,OAAO;AAAA,MACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC9D,QAAO,MAAM,6BAA6B,cAAc;AAAA,MAExD,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,iCAAiC;AAAA,QACzC,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,MAAM;AAAA;AAAA;AAAA,EAI5B;AACF;;ACrIA;AAAA,YAOE;AAAA;AAQF,IAAM,QAAO,kBAAkB,cAAc;AAE7C,IAAM,YAA8B;AAAA,EAClC;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,qBAAqB;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,qBAAqB;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,oBAA4B;AAAA,EACvC,MAAM;AAAA,EACN,SAAS,MAAK,UAAU,CAAC,GAAG,MAAK,OAAO,IAAI,CAAC;AAAA,EAC7C,aAAa,MAAK;AAAA,EAElB,UAAU,OAAO,SAAwB,SAAiB,WAAqC;AAAA,IAC7F,MAAM,UAAU,QAAQ,WAAW,mBAAmB;AAAA,IACtD,IAAI,CAAC,SAAS;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IAEA,MAAM,OAAQ,QAAQ,QAAoB,MAAM,YAAY,KAAK;AAAA,IACjE,OACE,KAAK,SAAS,OAAO,KACrB,KAAK,SAAS,KAAK,KACnB,KAAK,SAAS,QAAQ,KACtB,KAAK,SAAS,QAAQ;AAAA;AAAA,EAI1B,SAAS,OACP,SACA,SACA,OACA,UACA,aAC0B;AAAA,IAC1B,MAAM,UAAU,QAAQ,WAA0B,mBAAmB;AAAA,IAErE,IAAI,CAAC,SAAS;AAAA,MACZ,QAAO,MAAM,8BAA8B;AAAA,MAC3C,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,MACA,OAAO,EAAE,SAAS,MAAM;AAAA,IAC1B;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,UAAU,QAAQ;AAAA,MACxB,MAAM,OAAO,QAAQ,QAAQ;AAAA,MAE7B,MAAM,SAA4B;AAAA,QAChC,OAAQ,OAAO,SAAoB,QAAQ,UAAU,EAAE,SAAS;AAAA,QAChE,MAAO,OAAO,QAAmB,QAAQ,UAAU,EAAE,QAAQ;AAAA,QAC7D,OAAQ,OAAO,SAAoB,KAAK,MAAM,GAAG,GAAG;AAAA,QACpD,MAAO,OAAO,QAAmB;AAAA,QACjC,QAAS,OAAO,UAAuB,CAAC;AAAA,QACxC,WAAY,OAAO,aAA0B,CAAC;AAAA,MAChD;AAAA,MAEA,MAAM,aAAa,kBAAkB,UAAU,MAAM;AAAA,MACrD,IAAI,CAAC,WAAW,SAAS;AAAA,QACvB,MAAM,SAAS,gBAAgB,WAAW,KAAK;AAAA,QAC/C,QAAO,MAAM,6BAA6B,QAAQ;AAAA,QAClD,IAAI,UAAU;AAAA,UACZ,MAAM,SAAS;AAAA,YACb,MAAM,2DAA2D;AAAA,UACnE,CAAC;AAAA,QACH;AAAA,QACA,OAAO,EAAE,SAAS,MAAM;AAAA,MAC1B;AAAA,MAEA,MAAM,QAAQ,MAAM,QAAQ,YAAY,MAAM;AAAA,MAE9C,QAAO,KAAK,kBAAkB,MAAM,WAAW,MAAM,OAAO;AAAA,MAE5D,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,kBAAkB,MAAM,YAAY,MAAM;AAAA;AAAA,cAAyB,MAAM;AAAA,QACjF,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,OAAO;AAAA,MACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC9D,QAAO,MAAM,2BAA2B,cAAc;AAAA,MAEtD,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,+BAA+B;AAAA,QACvC,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,MAAM;AAAA;AAAA;AAAA,EAI5B;AACF;;AC5IA;AAAA,YAOE;AAAA;AAQF,IAAM,QAAO,kBAAkB,qBAAqB;AAEpD,IAAM,YAA8B;AAAA,EAClC;AAAA,IACE;AAAA,MACE,MAAM,MAAK;AAAA,MACX,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,4BAA4B;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,4BAA4B;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,0BAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,SAAS,MAAK,UAAU,CAAC,GAAG,MAAK,OAAO,IAAI,CAAC;AAAA,EAC7C,aAAa,MAAK;AAAA,EAElB,UAAU,OAAO,SAAwB,SAAiB,WAAqC;AAAA,IAC7F,MAAM,UAAU,QAAQ,WAAW,mBAAmB;AAAA,IACtD,IAAI,CAAC,SAAS;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IAEA,MAAM,OAAQ,QAAQ,QAAoB,MAAM,YAAY,KAAK;AAAA,IACjE,OAAO,KAAK,SAAS,cAAc,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,OAAO;AAAA;AAAA,EAGtF,SAAS,OACP,SACA,SACA,OACA,UACA,aAC0B;AAAA,IAC1B,MAAM,UAAU,QAAQ,WAA0B,mBAAmB;AAAA,IAErE,IAAI,CAAC,SAAS;AAAA,MACZ,QAAO,MAAM,8BAA8B;AAAA,MAC3C,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,MACA,OAAO,EAAE,SAAS,MAAM;AAAA,IAC1B;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,UAAU,QAAQ;AAAA,MACxB,MAAM,OAAO,QAAQ,QAAQ;AAAA,MAE7B,MAAM,SAAkC;AAAA,QACtC,OAAQ,OAAO,SAAoB,QAAQ,UAAU,EAAE,SAAS;AAAA,QAChE,MAAO,OAAO,QAAmB,QAAQ,UAAU,EAAE,QAAQ;AAAA,QAC7D,OAAQ,OAAO,SAAoB,KAAK,MAAM,GAAG,GAAG;AAAA,QACpD,MAAO,OAAO,QAAmB;AAAA,QACjC,MAAO,OAAO,QAAmB;AAAA,QACjC,MAAO,OAAO,QAAmB,QAAQ,UAAU,EAAE,UAAU;AAAA,QAC/D,OAAQ,OAAO,SAAqB;AAAA,MACtC;AAAA,MAEA,MAAM,aAAa,wBAAwB,UAAU,MAAM;AAAA,MAC3D,IAAI,CAAC,WAAW,SAAS;AAAA,QACvB,MAAM,SAAS,gBAAgB,WAAW,KAAK;AAAA,QAC/C,QAAO,MAAM,oCAAoC,QAAQ;AAAA,QACzD,IAAI,UAAU;AAAA,UACZ,MAAM,SAAS;AAAA,YACb,MAAM,kEAAkE;AAAA,UAC1E,CAAC;AAAA,QACH;AAAA,QACA,OAAO,EAAE,SAAS,MAAM;AAAA,MAC1B;AAAA,MAEA,MAAM,KAAK,MAAM,QAAQ,kBAAkB,MAAM;AAAA,MAEjD,QAAO,KAAK,yBAAyB,GAAG,WAAW,GAAG,OAAO;AAAA,MAE7D,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,yBAAyB,GAAG,YAAY,GAAG;AAAA;AAAA,QAAmB,GAAG,KAAK;AAAA,MAAY,GAAG,KAAK;AAAA;AAAA,cAAsB,GAAG;AAAA,QAC3H,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,OAAO;AAAA,MACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC9D,QAAO,MAAM,kCAAkC,cAAc;AAAA,MAE7D,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,sCAAsC;AAAA,QAC9C,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,MAAM;AAAA;AAAA;AAAA,EAI5B;AACF;;ACxIA;AAAA,YAOE;AAAA;AAQF,IAAM,QAAO,kBAAkB,oBAAoB;AAEnD,IAAM,YAA8B;AAAA,EAClC;AAAA,IACE;AAAA,MACE,MAAM,MAAK;AAAA,MACX,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,2BAA2B;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,2BAA2B;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,yBAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,SAAS,MAAK,UAAU,CAAC,GAAG,MAAK,OAAO,IAAI,CAAC;AAAA,EAC7C,aAAa,MAAK;AAAA,EAElB,UAAU,OAAO,SAAwB,SAAiB,WAAqC;AAAA,IAC7F,MAAM,UAAU,QAAQ,WAAW,mBAAmB;AAAA,IACtD,IAAI,CAAC,SAAS;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IAEA,MAAM,OAAQ,QAAQ,QAAoB,MAAM,YAAY,KAAK;AAAA,IACjE,OAAO,KAAK,SAAS,OAAO;AAAA;AAAA,EAG9B,SAAS,OACP,SACA,SACA,OACA,UACA,aAC0B;AAAA,IAC1B,MAAM,UAAU,QAAQ,WAA0B,mBAAmB;AAAA,IAErE,IAAI,CAAC,SAAS;AAAA,MACZ,QAAO,MAAM,8BAA8B;AAAA,MAC3C,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,MACA,OAAO,EAAE,SAAS,MAAM;AAAA,IAC1B;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,UAAU,QAAQ;AAAA,MACxB,MAAM,OAAO,QAAQ,MAAM,YAAY,KAAK;AAAA,MAE5C,IAAI,cAA6C;AAAA,MACjD,IAAI,KAAK,SAAS,QAAQ,GAAG;AAAA,QAC3B,cAAc;AAAA,MAChB,EAAO,SAAI,KAAK,SAAS,QAAQ,GAAG;AAAA,QAClC,cAAc;AAAA,MAChB;AAAA,MAEA,MAAM,SAAiC;AAAA,QACrC,OAAQ,OAAO,SAAoB,QAAQ,UAAU,EAAE,SAAS;AAAA,QAChE,MAAO,OAAO,QAAmB,QAAQ,UAAU,EAAE,QAAQ;AAAA,QAC7D,YAAa,OAAO,cAAyB;AAAA,QAC7C,aAAa,OAAO;AAAA,QACpB,eAAe,OAAO;AAAA,QACtB,aAAc,OAAO,eAAiD;AAAA,MACxE;AAAA,MAEA,MAAM,aAAa,uBAAuB,UAAU,MAAM;AAAA,MAC1D,IAAI,CAAC,WAAW,SAAS;AAAA,QACvB,MAAM,SAAS,gBAAgB,WAAW,KAAK;AAAA,QAC/C,QAAO,MAAM,6BAA6B,QAAQ;AAAA,QAClD,IAAI,UAAU;AAAA,UACZ,MAAM,SAAS;AAAA,YACb,MAAM,iEAAiE;AAAA,UACzE,CAAC;AAAA,QACH;AAAA,QACA,OAAO,EAAE,SAAS,MAAM;AAAA,MAC1B;AAAA,MAEA,MAAM,SAAS,MAAM,QAAQ,iBAAiB,MAAM;AAAA,MAEpD,IAAI,OAAO,QAAQ;AAAA,QACjB,QAAO,KAAK,wBAAwB,OAAO,YAAY;AAAA,QACvD,IAAI,UAAU;AAAA,UACZ,MAAM,SAAS;AAAA,YACb,MAAM,qCAAqC,OAAO;AAAA;AAAA,gBAAgC,OAAO,IAAI,MAAM,GAAG,CAAC;AAAA,UAAc,OAAO;AAAA,UAC9H,CAAC;AAAA,QACH;AAAA,QACA,OAAO,EAAE,SAAS,KAAK;AAAA,MACzB,EAAO;AAAA,QACL,QAAO,KAAK,iBAAiB,OAAO,8BAA8B,OAAO,SAAS;AAAA,QAClF,IAAI,UAAU;AAAA,UACZ,MAAM,SAAS;AAAA,YACb,MAAM,iCAAiC,OAAO,eAAe,OAAO;AAAA,UACtE,CAAC;AAAA,QACH;AAAA,QACA,OAAO,EAAE,SAAS,MAAM;AAAA;AAAA,MAE1B,OAAO,OAAO;AAAA,MACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC9D,QAAO,MAAM,iCAAiC,cAAc;AAAA,MAE5D,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,qCAAqC;AAAA,QAC7C,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,MAAM;AAAA;AAAA;AAAA,EAI5B;AACF;;ACtJA;AAAA,YAOE;AAAA;AAaF,IAAM,QAAO,kBAAkB,WAAW;AAE1C,IAAM,YAA8B;AAAA,EAClC;AAAA,IACE;AAAA,MACE,MAAM,MAAK;AAAA,MACX,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,kBAAkB;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,kBAAkB;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,iBAAyB;AAAA,EACpC,MAAM;AAAA,EACN,SAAS,MAAK,UAAU,CAAC,GAAG,MAAK,OAAO,IAAI,CAAC;AAAA,EAC7C,aAAa,MAAK;AAAA,EAElB,UAAU,OAAO,SAAwB,SAAiB,WAAqC;AAAA,IAC7F,MAAM,UAAU,QAAQ,WAAW,mBAAmB;AAAA,IACtD,IAAI,CAAC,SAAS;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IAEA,MAAM,OAAQ,QAAQ,QAAoB,MAAM,YAAY,KAAK;AAAA,IACjE,OACE,KAAK,SAAS,MAAM,KACpB,KAAK,SAAS,QAAQ,KACtB,KAAK,SAAS,MAAM,KACpB,KAAK,SAAS,QAAQ;AAAA;AAAA,EAI1B,SAAS,OACP,SACA,SACA,OACA,UACA,aAC0B;AAAA,IAC1B,MAAM,UAAU,QAAQ,WAA0B,mBAAmB;AAAA,IAErE,IAAI,CAAC,SAAS;AAAA,MACZ,QAAO,MAAM,8BAA8B;AAAA,MAC3C,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,MACA,OAAO,EAAE,SAAS,MAAM;AAAA,IAC1B;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,UAAU,QAAQ;AAAA,MACxB,MAAM,OAAO,QAAQ,QAAQ;AAAA,MAE7B,MAAM,QAAS,OAAO,SAA0B,CAAC;AAAA,MAEjD,MAAM,SAA6B;AAAA,QACjC,OAAQ,OAAO,SAAoB,QAAQ,UAAU,EAAE,SAAS;AAAA,QAChE,MAAO,OAAO,QAAmB,QAAQ,UAAU,EAAE,QAAQ;AAAA,QAC7D,SAAU,OAAO,WAAsB,KAAK,MAAM,GAAG,GAAG;AAAA,QACxD;AAAA,QACA,QAAS,OAAO,UAAqB,QAAQ,UAAU,EAAE,UAAU;AAAA,QACnE,YAAY,OAAO;AAAA,QACnB,aAAa,OAAO;AAAA,MACtB;AAAA,MAEA,MAAM,aAAa,mBAAmB,UAAU,MAAM;AAAA,MACtD,IAAI,CAAC,WAAW,SAAS;AAAA,QACvB,MAAM,SAAS,gBAAgB,WAAW,KAAK;AAAA,QAC/C,QAAO,MAAM,8BAA8B,QAAQ;AAAA,QACnD,IAAI,UAAU;AAAA,UACZ,MAAM,SAAS;AAAA,YACb,MAAM,wDAAwD;AAAA,UAChE,CAAC;AAAA,QACH;AAAA,QACA,OAAO,EAAE,SAAS,MAAM;AAAA,MAC1B;AAAA,MAEA,MAAM,SAAS,MAAM,QAAQ,aAAa,MAAM;AAAA,MAEhD,QAAO,KAAK,kBAAkB,OAAO,IAAI,MAAM,GAAG,CAAC,QAAQ,OAAO,QAAQ;AAAA,MAE1E,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,UAAU,MAAM,qBAAqB,OAAO;AAAA;AAAA,UAAsB,OAAO,IAAI,MAAM,GAAG,CAAC;AAAA,WAAe,OAAO;AAAA;AAAA,WAAuB,OAAO;AAAA,QACnJ,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,OAAO;AAAA,MACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC9D,QAAO,MAAM,wBAAwB,cAAc;AAAA,MAEnD,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,4BAA4B;AAAA,QACpC,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,MAAM;AAAA;AAAA;AAAA,EAI5B;AACF;;ACpJA;AAAA,YAOE;AAAA;AAQF,IAAM,QAAO,kBAAkB,qBAAqB;AAEpD,IAAM,YAA8B;AAAA,EAClC;AAAA,IACE;AAAA,MACE,MAAM,MAAK;AAAA,MACX,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,4BAA4B;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,CAAC,4BAA4B;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,0BAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,SAAS,MAAK,UAAU,CAAC,GAAG,MAAK,OAAO,IAAI,CAAC;AAAA,EAC7C,aAAa,MAAK;AAAA,EAElB,UAAU,OAAO,SAAwB,SAAiB,WAAqC;AAAA,IAC7F,MAAM,UAAU,QAAQ,WAAW,mBAAmB;AAAA,IACtD,IAAI,CAAC,SAAS;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IAEA,MAAM,OAAQ,QAAQ,QAAoB,MAAM,YAAY,KAAK;AAAA,IACjE,OACE,KAAK,SAAS,QAAQ,KACtB,KAAK,SAAS,SAAS,KACvB,KAAK,SAAS,iBAAiB,KAC/B,KAAK,SAAS,MAAM;AAAA;AAAA,EAIxB,SAAS,OACP,SACA,SACA,OACA,UACA,aAC0B;AAAA,IAC1B,MAAM,UAAU,QAAQ,WAA0B,mBAAmB;AAAA,IAErE,IAAI,CAAC,SAAS;AAAA,MACZ,QAAO,MAAM,8BAA8B;AAAA,MAC3C,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,MACA,OAAO,EAAE,SAAS,MAAM;AAAA,IAC1B;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,UAAU,QAAQ;AAAA,MACxB,MAAM,OAAO,QAAQ,QAAQ;AAAA,MAE7B,IAAI,QAAmD;AAAA,MACvD,MAAM,YAAY,KAAK,YAAY;AAAA,MACnC,IACE,UAAU,SAAS,SAAS,KAC5B,UAAU,SAAS,MAAM,KACzB,UAAU,SAAS,YAAY,GAC/B;AAAA,QACA,QAAQ;AAAA,MACV,EAAO,SACL,UAAU,SAAS,iBAAiB,KACpC,UAAU,SAAS,YAAY,KAC/B,UAAU,SAAS,KAAK,GACxB;AAAA,QACA,QAAQ;AAAA,MACV;AAAA,MAEA,MAAM,SAA6B;AAAA,QACjC,OAAQ,OAAO,SAAoB,QAAQ,UAAU,EAAE,SAAS;AAAA,QAChE,MAAO,OAAO,QAAmB,QAAQ,UAAU,EAAE,QAAQ;AAAA,QAC7D,YAAa,OAAO,cAAyB;AAAA,QAC7C,MAAO,OAAO,QAAmB;AAAA,QACjC,OAAQ,OAAO,SAAuD;AAAA,MACxE;AAAA,MAEA,MAAM,aAAa,mBAAmB,UAAU,MAAM;AAAA,MACtD,IAAI,CAAC,WAAW,SAAS;AAAA,QACvB,MAAM,SAAS,gBAAgB,WAAW,KAAK;AAAA,QAC/C,QAAO,MAAM,8BAA8B,QAAQ;AAAA,QACnD,IAAI,UAAU;AAAA,UACZ,MAAM,SAAS;AAAA,YACb,MAAM,4DAA4D;AAAA,UACpE,CAAC;AAAA,QACH;AAAA,QACA,OAAO,EAAE,SAAS,MAAM;AAAA,MAC1B;AAAA,MAEA,MAAM,SAAS,MAAM,QAAQ,aAAa,MAAM;AAAA,MAEhD,MAAM,aACJ,OAAO,UAAU,aACb,aACA,OAAO,UAAU,sBACf,yBACA;AAAA,MAER,QAAO,KAAK,WAAW,OAAO,uBAAuB,OAAO,YAAY;AAAA,MAExE,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,QAAQ,4BAA4B,OAAO;AAAA;AAAA,sBAAsC,OAAO;AAAA,QAChG,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,OAAO;AAAA,MACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC9D,QAAO,MAAM,4BAA4B,cAAc;AAAA,MAEvD,IAAI,UAAU;AAAA,QACZ,MAAM,SAAS;AAAA,UACb,MAAM,gCAAgC;AAAA,QACxC,CAAC;AAAA,MACH;AAAA,MAEA,OAAO,EAAE,SAAS,MAAM;AAAA;AAAA;AAAA,EAI5B;AACF;;ACzIO,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACtBA,SAAS,kBAAkB,CAAC,MAA6B;AAAA,EACvD,MAAM,WAAW,CAAC,UAAU,oBAAoB,iBAAiB,2BAA2B;AAAA,EAE5F,WAAW,WAAW,UAAU;AAAA,IAC9B,MAAM,QAAQ,KAAK,MAAM,OAAO;AAAA,IAChC,IAAI,QAAQ,IAAI;AAAA,MACd,OAAO,OAAO,SAAS,MAAM,IAAI,EAAE;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAGT,IAAM,QAAO,oBAAoB,cAAc;AAExC,IAAM,uBAAiC;AAAA,EAC5C,MAAM,MAAK;AAAA,EACX,aACE;AAAA,EAEF,KAAK,OAAO,SAAwB,SAAiB,WAA2C;AAAA,IAC9F,MAAM,UAAU,QAAQ,WAA0B,mBAAmB;AAAA,IAErE,IAAI,CAAC,SAAS;AAAA,MACZ,OAAO,EAAE,MAAM,KAAK;AAAA,IACtB;AAAA,IAEA,MAAM,OAAQ,QAAQ,QAAoB,QAAQ;AAAA,IAClD,MAAM,cAAc,mBAAmB,IAAI;AAAA,IAE3C,IAAI,CAAC,aAAa;AAAA,MAChB,OAAO,EAAE,MAAM,KAAK;AAAA,IACtB;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,SAAS,QAAQ,UAAU;AAAA,MAEjC,IAAI,CAAC,OAAO,SAAS,CAAC,OAAO,MAAM;AAAA,QACjC,OAAO,EAAE,MAAM,KAAK;AAAA,MACtB;AAAA,MAEA,IAAI;AAAA,QACF,MAAM,QAAQ,MAAM,QAAQ,SAAS;AAAA,UACnC,OAAO,OAAO;AAAA,UACd,MAAM,OAAO;AAAA,UACb;AAAA,QACF,CAAC;AAAA,QAED,IAAI,MAAM,eAAe;AAAA,UACvB,MAAM,KAAK,MAAM,QAAQ,eAAe;AAAA,YACtC,OAAO,OAAO;AAAA,YACd,MAAM,OAAO;AAAA,YACb,YAAY;AAAA,UACd,CAAC;AAAA,UAED,MAAM,UAAS,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI;AAAA,UACrD,MAAM,aAAY,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI;AAAA,UAC5D,MAAM,YAAY,GAAG,mBAAmB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI;AAAA,UAErE,MAAM,SAAQ;AAAA,YACZ,oBAAoB,GAAG,WAAW,GAAG;AAAA,YACrC;AAAA,YACA,cAAc,GAAG,QAAQ,GAAG,QAAQ,aAAa,KAAK,GAAG,SAAS,cAAc;AAAA,YAChF,eAAe,GAAG,KAAK;AAAA,YACvB,eAAe,GAAG,KAAK,SAAQ,GAAG,KAAK;AAAA,YACvC,gBAAgB,GAAG;AAAA,YACnB,gBAAgB,GAAG;AAAA,UACrB;AAAA,UAEA,IAAI,SAAQ;AAAA,YACV,OAAM,KAAK,eAAe,SAAQ;AAAA,UACpC;AAAA,UACA,IAAI,YAAW;AAAA,YACb,OAAM,KAAK,kBAAkB,YAAW;AAAA,UAC1C;AAAA,UACA,IAAI,WAAW;AAAA,YACb,OAAM,KAAK,4BAA4B,WAAW;AAAA,UACpD;AAAA,UAEA,OAAM,KACJ,IACA,iBAAiB,GAAG,gBAAgB,GAAG,cAAc,GAAG,uBACxD,IACA,mBACA,GAAG,QAAQ,6BACX,IACA,YAAY,GAAG,SACjB;AAAA,UAEA,OAAO,EAAE,MAAM,OAAM,KAAK;AAAA,CAAI,EAAE;AAAA,QAClC;AAAA,QAEA,MAAM,SAAS,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI;AAAA,QACxD,MAAM,YAAY,MAAM,UAAU,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI;AAAA,QAE/D,MAAM,QAAQ;AAAA,UACZ,aAAa,MAAM,WAAW,MAAM;AAAA,UACpC;AAAA,UACA,cAAc,MAAM,QAAQ,MAAM,cAAc,KAAK,MAAM,iBAAiB;AAAA,UAC5E,eAAe,MAAM,KAAK;AAAA,UAC1B,gBAAgB,MAAM;AAAA,UACtB,gBAAgB,MAAM;AAAA,UACtB,iBAAiB,MAAM;AAAA,QACzB;AAAA,QAEA,IAAI,QAAQ;AAAA,UACV,MAAM,KAAK,eAAe,QAAQ;AAAA,QACpC;AAAA,QACA,IAAI,WAAW;AAAA,UACb,MAAM,KAAK,kBAAkB,WAAW;AAAA,QAC1C;AAAA,QACA,IAAI,MAAM,WAAW;AAAA,UACnB,MAAM,KAAK,kBAAkB,MAAM,UAAU,OAAO;AAAA,QACtD;AAAA,QAEA,MAAM,KACJ,IACA,mBACA,MAAM,QAAQ,6BACd,IACA,YAAY,MAAM,SACpB;AAAA,QAEA,OAAO,EAAE,MAAM,MAAM,KAAK;AAAA,CAAI,EAAE;AAAA,QAChC,MAAM;AAAA,QACN,OAAO;AAAA,UACL,MAAM,aAAa,4BAA4B,OAAO,SAAS,OAAO;AAAA,QACxE;AAAA;AAAA,MAEF,OAAO,OAAO;AAAA,MACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC9D,OAAO,EAAE,MAAM,kCAAkC,eAAe;AAAA;AAAA;AAGtE;;AC7IA,IAAM,QAAO,oBAAoB,iBAAiB;AAE3C,IAAM,0BAAoC;AAAA,EAC/C,MAAM,MAAK;AAAA,EACX,aAAa;AAAA,EAEb,KAAK,OAAO,SAAwB,UAAkB,WAA2C;AAAA,IAC/F,MAAM,UAAU,QAAQ,WAA0B,mBAAmB;AAAA,IAErE,IAAI,CAAC,SAAS;AAAA,MACZ,OAAO,EAAE,MAAM,KAAK;AAAA,IACtB;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,SAAS,QAAQ,UAAU;AAAA,MAEjC,IAAI,CAAC,OAAO,SAAS,CAAC,OAAO,MAAM;AAAA,QACjC,OAAO;AAAA,UACL,MAAM;AAAA,QACR;AAAA,MACF;AAAA,MAEA,MAAM,OAAO,MAAM,QAAQ,cAAc;AAAA,QACvC,OAAO,OAAO;AAAA,QACd,MAAM,OAAO;AAAA,MACf,CAAC;AAAA,MAED,MAAM,SAAS,MAAM,QAAQ,WAAW;AAAA,QACtC,OAAO,OAAO;AAAA,QACd,MAAM,OAAO;AAAA,QACb,OAAO;AAAA,QACP,SAAS;AAAA,MACX,CAAC;AAAA,MAED,MAAM,eAAe,MAAM,QAAQ,iBAAiB;AAAA,QAClD,OAAO,OAAO;AAAA,QACd,MAAM,OAAO;AAAA,QACb,OAAO;AAAA,QACP,SAAS;AAAA,MACX,CAAC;AAAA,MAED,MAAM,QAAkB;AAAA,QACtB,yBAAyB,KAAK;AAAA,QAC9B;AAAA,QACA,oBAAoB,KAAK,eAAe;AAAA,QACxC,uBAAuB,KAAK;AAAA,QAC5B,iBAAiB,KAAK,YAAY;AAAA,QAClC,cAAc,KAAK,gCAAgC,KAAK;AAAA,QACxD,oBAAoB,KAAK;AAAA,QACzB;AAAA,MACF;AAAA,MAEA,IAAI,OAAO,SAAS,GAAG;AAAA,QACrB,MAAM,KAAK,wBAAwB;AAAA,QACnC,WAAW,SAAS,QAAQ;AAAA,UAC1B,MAAM,SAAS,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI;AAAA,UACxD,MAAM,KAAK,MAAM,MAAM,WAAW,MAAM,QAAQ,SAAS,KAAK,YAAY,IAAI;AAAA,QAChF;AAAA,QACA,MAAM,KAAK,EAAE;AAAA,MACf;AAAA,MAEA,IAAI,aAAa,SAAS,GAAG;AAAA,QAC3B,MAAM,KAAK,+BAA+B;AAAA,QAC1C,WAAW,MAAM,cAAc;AAAA,UAC7B,MAAM,SAAS,GAAG,QAAQ,aAAa;AAAA,UACvC,MAAM,KAAK,MAAM,GAAG,WAAW,SAAS,GAAG,UAAU,GAAG,KAAK,SAAQ,GAAG,KAAK,MAAM;AAAA,QACrF;AAAA,QACA,MAAM,KAAK,EAAE;AAAA,MACf;AAAA,MAEA,OAAO,EAAE,MAAM,MAAM,KAAK;AAAA,CAAI,EAAE;AAAA,MAChC,OAAO,OAAO;AAAA,MACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC9D,OAAO;AAAA,QACL,MAAM,4CAA4C;AAAA,MACpD;AAAA;AAAA;AAGN;;ACzEO,IAAM,eAAe,CAAC,yBAAyB,oBAAoB;;;AjBJ1E,IAAM,eAAuB;AAAA,EAC3B,MAAM;AAAA,EACN,aACE;AAAA,EACF,UAAU,CAAC,aAAa;AAAA,EACxB,SAAS;AAAA,EACT,WAAW;AAAA,EAEX,MAAM,OAAO,SAAiC,YAA2B;AAAA,IACvE,MAAM,QAAQ,QAAQ,WAAW,kBAAkB;AAAA,IACnD,MAAM,QAAQ,QAAQ,WAAW,cAAc;AAAA,IAC/C,MAAM,OAAO,QAAQ,WAAW,aAAa;AAAA,IAC7C,MAAM,SAAS,QAAQ,WAAW,eAAe,KAAK;AAAA,IAEtD,QAAO,KACL,0BAA0B,QAAQ,eAAe,4BAA4B,SAAS,oBAAoB,QAAQ,sBAAsB,QAC1I;AAAA,IAEA,IAAI,CAAC,OAAO;AAAA,MACV,QAAO,KAAK,+DAA+D;AAAA,IAC7E;AAAA;AAEJ;AAEA,IAAe;",
24
+ "mappings": "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",
25
25
  "debugId": "D24EE671934108D364756E2164756E21",
26
26
  "names": []
27
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/plugin-github",
3
- "version": "2.0.0-alpha.3",
3
+ "version": "2.0.0-alpha.4",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -41,7 +41,7 @@
41
41
  "test": "vitest run __tests__/",
42
42
  "test:unit": "vitest run __tests__/",
43
43
  "test:integration": "echo 'Integration tests require elizaos CLI - skipping'",
44
- "lint": "biome check --write .",
44
+ "lint": "bunx @biomejs/biome check --write --unsafe .",
45
45
  "lint:check": "biome check .",
46
46
  "clean": "rm -rf dist .turbo node_modules .turbo-tsconfig.json tsconfig.tsbuildinfo",
47
47
  "format": "biome format --write .",