ICUICU
critical

argocd-mcp

v0.5.0

Argo CD MCP Server

npmakuitybotFirst seen Feb 22, 2026

130

Total

6

Critical

112

High

12

Medium

Findings

unknown
criticalDE-002Data ExfiltrationHigh ConfidenceLine 0

Environment file access

Detected by automated pattern matching (rule DE-002) with medium confidence. May be a false positive.

>>> 1: {"version":3,"sources":["../src/cmd/cmd.ts","../src/server/transport.ts","../src/logging/logging.ts","../src/server/server.ts","../package.json","../src/argocd/http.ts","../src/argocd/client.ts","../src/shared/models/schema.ts","../src/index.ts"],"sourcesContent":["import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport {\n  connectStdioTransport,\n  connectHttpTransport,\n  connectSSETransport\n} from '../server/transport.js';\n\nexport const cmd = () => {\n  const exe = yargs(hideBin(process.argv));\n\n  exe.command(\n    'stdio',\n    'Start ArgoCD MCP server using stdio.',\n    () => {},\n    () => connectStdioTransport()\n  );\n\n  exe.command(\n    'sse',\n    'Start ArgoCD MCP server using SSE.',\n    (yargs) => {\n      return yargs.option('port', {\n        type: 'number',\n        default: 3000\n      });\n    },\n    ({ port }) => connectSSETransport(port)\n  );\n\n  exe.command(\n    'http',\n    'Start ArgoCD MCP server using Http Stream.',\n    (yargs) => {\n      return yargs.option('port', {\n        type: 'number',\n        default: 3000\n      });\n    },\n    ({ port }) => connectHttpTransport(port)\n  );\n\n  exe.demandCommand().parseSync();\n};\n","import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';\nimport express from 'express';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { logger } from '../logging/logging.js';\nimport { createServer } from './server.js';\nimport { randomUUID } from 'node:crypto';\nimport { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';\nimport { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';\n\nexport const connectStdioTransport = () => {\n  const server = createServer({\n    argocdBaseUrl: process.env.ARGOCD_BASE_URL || '',\n    argocdApiToken: process.env.ARGOCD_API_TOKEN || ''\n  });\n\n  logger.info('Connecting to stdio transport');\n  server.connect(new StdioServerTransport());\n};\n\nexport const connectSSETransport = (port: number) => {\n  const app = express();\n  const transports: { [sessionId: string]: SSEServerTransport } = {};\n\n  app.get('/sse', async (req, res) => {\n    const server = createServer({\n      argocdBaseUrl: (req.headers['x-argocd-base-url'] as string) || '',\n      argocdApiToken: (req.headers['x-argocd-api-token'] as string) || ''\n    });\n\n    const transport = new SSEServerTransport('/messages', res);\n    transports[transport.sessionId] = transport;\n    res.on('close', () => {\n      delete transports[transport.sessionId];\n    });\n    await server.connect(transport);\n  });\n\n  app.post('/messages', async (req, res) => {\n    const sessionId = req.query.sessionId as string;\n    const transport = transports[sessionId];\n    if (transport) {\n      await transport.handlePostMessage(req, res);\n    } else {\n      res.status(400).send(`No transport found for sessionId: ${sessionId}`);\n    }\n  });\n\n  logger.info(`Connecting to SSE transport on port: ${port}`);\n  app.listen(port);\n};\n\nexport const connectHttpTransport = (port: number) => {\n  const app = express();\n  app.use(express.json());\n\n  const httpTransports: { [sessionId: string]: StreamableHTTPServerTransport } = {};\n\n  app.post('/mcp', async (req, res) => {\n    const sessionIdFromHeader = req.headers['mcp-session-id'] as string | undefined;\n    let transport: StreamableHTTPServerTransport;\n\n    if (sessionIdFromHeader && httpTransports[sessionIdFromHeader]) {\n      transport = httpTransports[sessionIdFromHeader];\n    } else if (!sessionIdFromHeader && isInitializeRequest(req.body)) {\n      const argocdBaseUrl =\n        (req.headers['x-argocd-base-url'] as string) || process.env.ARGOCD_BASE_URL || '';\n      const argocdApiToken =\n        (req.headers['x-argocd-api-token'] as string) || process.env.ARGOCD_API_TOKEN || '';\n\n      if (argocdBaseUrl == '' || argocdApiToken == '') {\n        res\n          .status(400)\n          .send('x-argocd-base-url and x-argocd-api-token must be provided in headers.');\n        return;\n      }\n\n      transport = new StreamableHTTPServerTransport({\n        sessionIdGenerator: () => randomUUID(),\n        onsessioninitialized: (newSessionId) => {\n          httpTransports[newSessionId] = transport;\n        }\n      });\n\n      transport.onclose = () => {\n        if (transport.sessionId) {\n          delete httpTransports[transport.sessionId];\n        }\n      };\n\n      const server = createServer({\n        argocdBaseUrl,\n        argocdApiToken\n      });\n\n      await server.connect(transport);\n    } else {\n      const errorMsg = sessionIdFromHeader\n        ? `Invalid or expired session ID: ${sessionIdFromHeader}`\n        : 'Bad Request: Not an initialization request and no valid session ID provided.';\n      res.status(400).json({\n        jsonrpc: '2.0',\n        error: {\n          code: -32000,\n          message: errorMsg\n        },\n        id: req.body?.id !== undefined ? req.body.id : null\n      });\n      return;\n    }\n\n    await transport.handleRequest(req, res, req.body);\n  });\n\n  const handleSessionRequest = async (req: express.Request, res: express.Response) => {\n    const sessionId = req.headers['mcp-session-id'] as string | undefined;\n    if (!sessionId || !httpTransports[sessionId]) {\n      res.status(400).send('Invalid or missing session ID');\n      return;\n    }\n    const transport = httpTransports[sessionId];\n    await transport.handleRequest(req, res);\n  };\n\n  app.get('/mcp', handleSessionRequest);\n  app.delete('/mcp', handleSessionRequest);\n\n  logger.info(`Connecting to Http Stream transport on port: ${port}`);\n  app.listen(port);\n};\n","import { pino } from 'pino';\nimport { stderr } from 'process';\n\nexport const logger = pino(pino.destination(stderr));\n","import { McpServer, ToolCallback } from '@modelcontextprotocol/sdk/server/mcp.js';\n\nimport packageJSON from '../../package.json' with { type: 'json' };\nimport { ArgoCDClient } from '../argocd/client.js';\nimport { z, ZodRawShape } from 'zod';\nimport { V1alpha1Application, V1alpha1ResourceResult } from '../types/argocd-types.js';\nimport {\n  ApplicationNamespaceSchema,\n  ApplicationSchema,\n  ResourceRefSchema\n} from '../shared/models/schema.js';\n\ntype ServerInfo = {\n  argocdBaseUrl: string;\n  argocdApiToken: string;\n};\n\nexport class Server extends McpServer {\n  private argocdClient: ArgoCDClient;\n\n  constructor(serverInfo: ServerInfo) {\n    super({\n      name: packageJSON.name,\n      version: packageJSON.version\n    });\n    this.argocdClient = new ArgoCDClient(serverInfo.argocdBaseUrl, serverInfo.argocdApiToken);\n\n    const isReadOnly =\n      String(process.env.MCP_READ_ONLY ?? '')\n        .trim()\n        .toLowerCase() === 'true';\n\n    // Always register read/query tools\n    this.addJsonOutputTool(\n      'list_applications',\n      'list_applications returns list of applications',\n      {\n        search: z\n          .string()\n          .optional()\n          .describe(\n            'Search applications by name. This is a partial match on the application name and does not support glob patterns (e.g. \"*\"). Optional.'\n          ),\n        limit: z\n          .number()\n          .int()\n          .positive()\n          .optional()\n          .describe(\n            'Maximum number of applications to return. Use this to reduce token usage when there are many applications. Optional.'\n          ),\n        offset: z\n          .number()\n          .int()\n          .min(0)\n          .optional()\n          .describe(\n            'Number of applications to skip before returning results. Use with limit for pagination. Optional.'\n          )\n      },\n      async ({ search, limit, offset }) =>\n        await this.argocdClient.listApplications({\n          search: search ?? undefined,\n          limit,\n          offset\n        })\n    );\n    this.addJsonOutputTool(\n      'get_application',\n      'get_application returns application by application name. Optionally specify the application namespace to get applications from non-default namespaces.',\n      {\n        applicationName: z.string(),\n        applicationNamespace: ApplicationNamespaceSchema.optional()\n      },\n      async ({ applicationName, applicationNamespace }) =>\n        await this.argocdClient.getApplication(applicationName, applicationNamespace)\n    );\n    this.addJsonOutputTool(\n      'get_application_resource_tree',\n      'get_application_resource_tree returns resource tree for application by application name',\n      { applicationName: z.string() },\n      async ({ applicationName }) =>\n        await this.argocdClient.getApplicationResourceTree(applicationName)\n    );\n    this.addJsonOutputTool(\n      'get_application_managed_resources',\n      'get_application_managed_resources returns managed resources for application by application name with optional filtering. Use filters to avoid token limits with large applications. Examples: kind=\"ConfigMap\" for config maps only, namespace=\"production\" for specific namespace, or combine multiple filters.',\n      {\n        applicationName: z.string(),\n        kind: z\n          .string()\n          .optional()\n          .describe(\n            'Filter by Kubernetes resource kind (e.g., \"ConfigMap\", \"Secret\", \"Deployment\")'\n          ),\n        namespace: z.string().optional().describe('Filter by Kubernetes namespace'),\n        name: z.string().optional().describe('Filter by resource name'),\n        version: z.string().optional().describe('Filter by resource API version'),\n        group: z.string().optional().describe('Filter by API group'),\n        appNamespace: z.string().optional().describe('Filter by Argo CD application namespace'),\n        project: z.string().optional().describe('Filter by Argo CD project')\n      },\n      async ({ applicationName, kind, namespace, name, version, group, appNamespace, project }) => {\n        const filters = {\n          ...(kind && { kind }),\n          ...(namespace && { namespace }),\n          ...(name && { name }),\n          ...(version && { version }),\n          ...(group && { group }),\n          ...(appNamespace && { appNamespace }),\n          ...(project && { project })\n        };\n        return await this.argocdClient.getApplicationManagedResources(\n          applicationName,\n          Object.keys(filters).length > 0 ? filters : undefined\n        );\n      }\n    );\n    this.addJsonOutputTool(\n      'get_application_workload_logs',\n      'get_application_workload_logs returns logs for application workload (Deployment, StatefulSet, Pod, etc.) by application name and resource ref and optionally container name',\n      {\n        applicationName: z.string(),\n        applicationNamespace: ApplicationNamespaceSchema,\n        resourceRef: ResourceRefSchema,\n        container: z.string()\n      },\n      async ({ applicationName, applicationNamespace, resourceRef, container }) =>\n        await this.argocdClient.getWorkloadLogs(\n          applicationName,\n          applicationNamespace,\n          resourceRef as V1alpha1ResourceResult,\n          container\n        )\n    );\n    this.addJsonOutputTool(\n      'get_application_events',\n      'get_application_events returns events for application by application name',\n      { applicationName: z.string() },\n      async ({ applicationName }) => await this.argocdClient.getApplicationEvents(applicationName)\n    );\n    this.addJsonOutputTool(\n      'get_resource_events',\n      'get_resource_events returns events for a resource that is managed by an application',\n      {\n        applicationName: z.string(),\n        applicationNamespace: ApplicationNamespaceSchema,\n        resourceUID: z.string(),\n        resourceNamespace: z.string(),\n        resourceName: z.string()\n      },\n      async ({\n        applicationName,\n        applicationNamespace,\n        resourceUID,\n        resourceNamespace,\n        resourceName\n      }) =>\n        await this.argocdClient.getResourceEvents(\n          applicationName,\n          applicationNamespace,\n          resourceUID,\n          resourceNamespace,\n          resourceName\n        )\n    );\n    this.addJsonOutputTool(\n      'get_resources',\n      'get_resources return manifests for resources specified by resourceRefs. If resourceRefs is empty or not provided, fetches all resources managed by the application.',\n      {\n        applicationName: z.string(),\n        applicationNamespace: ApplicationNamespaceSchema,\n        resourceRefs: ResourceRefSchema.array().optional()\n      },\n      async ({ applicationName, applicationNamespace, resourceRefs }) => {\n        let refs = resourceRefs || [];\n        if (refs.length === 0) {\n          const tree = await this.argocdClient.getApplicationResourceTree(applicationName);\n          refs =\n            tree.nodes?.map((node) => ({\n              uid: node.uid!,\n              version: node.version!,\n              group: node.group!,\n              kind: node.kind!,\n              name: node.name!,\n              namespace: node.namespace!\n            })) || [];\n        }\n        return Promise.all(\n          refs.map((ref) =>\n            this.argocdClient.getResource(applicationName, applicationNamespace, ref)\n          )\n        );\n      }\n    );\n    this.addJsonOutputTool(\n      'get_resource_actions',\n      'get_resource_actions returns actions for a resource that is managed by an application',\n      {\n        applicationName: z.string(),\n        applicationNamespace: ApplicationNamespaceSchema,\n        resourceRef: ResourceRefSchema\n      },\n      async ({ applicationName, applicationNamespace, resourceRef }) =>\n        await this.argocdClient.getResourceActions(\n          applicationName,\n          applicationNamespace,\n          resourceRef as V1alpha1ResourceResult\n        )\n    );\n\n    // Only register modification tools if not in read-only mode\n    if (!isReadOnly) {\n      this.addJsonOutputTool(\n        'create_application',\n        'create_application creates a new ArgoCD application in the specified namespace. The application.metadata.namespace field determines where the Application resource will be created (e.g., \"argocd\", \"argocd-apps\", or any custom namespace).',\n        { application: ApplicationSchema },\n        async ({ application }) =>\n          await this.argocdClient.createApplication(application as V1alpha1Application)\n      );\n      this.addJsonOutputTool(\n        'update_application',\n        'update_application updates application',\n        { applicationName: z.string(), application: ApplicationSchema },\n        async ({ applicationName, application }) =>\n          await this.argocdClient.updateApplication(\n            applicationName,\n            application as V1alpha1Application\n          )\n      );\n      this.addJsonOutputTool(\n        'delete_application',\n        'delete_application deletes application. Specify applicationNamespace if the application is in a non-default namespace to avoid permission errors.',\n        {\n          applicationName: z.string(),\n          applicationNamespace: ApplicationNamespaceSchema.optional().describe(\n            'The namespace where the application is located. Required if application is not in the default namespace.'\n          ),\n          cascade: z\n            .boolean()\n            .optional()\n            .describe('Whether to cascade the deletion to child resources'),\n          propagationPolicy: z\n            .string()\n            .optional()\n            .describe('Deletion propagation policy (e.g., \"Foreground\", \"Background\", \"Orphan\")')\n        },\n        async ({ applicationName, applicationNamespace, cascade, propagationPolicy }) => {\n          const options: Record<string, string | boolean> = {};\n          if (applicationNamespace) options.appNamespace = applicationNamespace;\n          if (cascade !== undefined) options.cascade = cascade;\n          if (propagationPolicy) options.propagationPolicy = propagationPolicy;\n\n          return await this.argocdClient.deleteApplication(\n            applicationName,\n            Object.keys(options).length > 0 ? options : undefined\n          );\n        }\n      );\n      this.addJsonOutputTool(\n        'sync_application',\n        'sync_application syncs application. Specify applicationNamespace if the application is in a non-default namespace to avoid permission errors.',\n        {\n          applicationName: z.string(),\n          applicationNamespace: ApplicationNamespaceSchema.optional().describe(\n            'The namespace where the application is located. Required if application is not in the default namespace.'\n          ),\n          dryRun: z\n            .boolean()\n            .optional()\n            .describe('Perform a dry run sync without applying changes'),\n          prune: z\n            .boolean()\n            .optional()\n            .describe('Remove resources that are no longer defined in the source'),\n          revision: z\n            .string()\n            .optional()\n            .describe('Sync to a specific revision instead of the latest'),\n          syncOptions: z\n            .array(z.string())\n            .optional()\n            .describe(\n              'Additional sync options (e.g., [\"CreateNamespace=true\", \"PrunePropagationPolicy=foreground\"])'\n            )\n        },\n        async ({ applicationName, applicationNamespace, dryRun, prune, revision, syncOptions }) => {\n          const options: Record<string, string | boolean | string[]> = {};\n          if (applicationNamespace) options.appNamespace = applicationNamespace;\n          if (dryRun !== undefined) options.dryRun = dryRun;\n          if (prune !== undefined) options.prune = prune;\n          if (revision) options.revision = revision;\n          if (syncOptions) options.syncOptions = syncOptions;\n\n          return await this.argocdClient.syncApplication(\n            applicationName,\n            Object.keys(options).length > 0 ? options : undefined\n          );\n        }\n      );\n      this.addJsonOutputTool(\n        'run_resource_action',\n        'run_resource_action runs an action on a resource',\n        {\n          applicationName: z.string(),\n          applicationNamespace: ApplicationNamespaceSchema,\n          resourceRef: ResourceRefSchema,\n          action: z.string()\n        },\n        async ({ applicationName, applicationNamespace, resourceRef, action }) =>\n          await this.argocdClient.runResourceAction(\n            applicationName,\n            applicationNamespace,\n            resourceRef as V1alpha1ResourceResult,\n            action\n          )\n      );\n    }\n  }\n\n  private addJsonOutputTool<Args extends ZodRawShape, T>(\n    name: string,\n    description: string,\n    paramsSchema: Args,\n    cb: (...cbArgs: Parameters<ToolCallback<Args>>) => T\n  ) {\n    this.tool(name, description, paramsSchema as ZodRawShape, async (...args) => {\n      try {\n        const result = await cb.apply(this, args as Parameters<ToolCallback<Args>>);\n        return {\n          isError: false,\n          content: [{ type: 'text', text: JSON.stringify(result) }]\n        };\n      } catch (error) {\n        return {\n          isError: true,\n          content: [{ type: 'text', text: error instanceof Error ? error.message : String(error) }]\n        };\n      }\n    });\n  }\n}\n\nexport const createServer = (serverInfo: ServerInfo) => {\n  return new Server(serverInfo);\n};\n","{\n  \"name\": \"argocd-mcp\",\n  \"version\": \"0.0.0\",\n  \"description\": \"Argo CD MCP Server\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/argoproj-labs/mcp-for-argocd.git\"\n  },\n  \"keywords\": [\n    \"mcp\",\n    \"argocd\",\n    \"argocd-mcp\",\n    \"argocd-mcp-server\",\n    \"argo-cd\",\n    \"argo-cd-mcp\",\n    \"argo-cd-mcp-server\",\n    \"cicd\",\n    \"cicd-mcp\",\n    \"cicd-mcp-server\",\n    \"gitops\",\n    \"gitops-mcp\",\n    \"gitops-mcp-server\",\n    \"kubernetes\",\n    \"kubernetes-mcp\",\n    \"kubernetes-mcp-server\"\n  ],\n  \"main\": \"dist/index.js\",\n  \"type\": \"module\",\n  \"bin\": {\n    \"argocd-mcp\": \"dist/index.js\"\n  },\n  \"files\": [\n    \"dist\",\n    \"images\",\n    \"README.md\",\n    \"LICENSE\"\n  ],\n  \"scripts\": {\n    \"dev\": \"tsx watch src/index.ts http\",\n    \"dev-sse\": \"tsx watch src/index.ts sse\",\n    \"lint\": \"eslint src/**/*.ts --no-warn-ignored\",\n    \"lint:fix\": \"eslint src/**/*.ts --fix\",\n    \"build\": \"tsup\",\n    \"build:watch\": \"tsup --watch\",\n    \"generate-types\": \"dtsgen -c dtsgen.json -o src/types/argocd.d.ts swagger.json\"\n  },\n  \"author\": \"Argo Proj Contributors.\",\n  \"license\": \"Apache-2.0\",\n  \"dependencies\": {\n    \"@modelcontextprotocol/sdk\": \"^1.10.1\",\n    \"dotenv\": \"^16.5.0\",\n    \"express\": \"^5.1.0\",\n    \"pino\": \"^9.6.0\",\n    \"yargs\": \"^17.7.2\",\n    \"zod\": \"^3.24.3\"\n  },\n  \"devDependencies\": {\n    \"@dtsgenerator/replace-namespace\": \"^1.7.0\",\n    \"@eslint/js\": \"^9.25.0\",\n    \"@types/express\": \"^5.0.1\",\n    \"@types/node\": \"^22.14.1\",\n    \"@types/yargs\": \"^17.0.33\",\n    \"dtsgenerator\": \"^3.19.2\",\n    \"eslint\": \"^9.25.0\",\n    \"eslint-config-prettier\": \"^10.1.2\",\n    \"eslint-plugin-prettier\": \"^5.2.6\",\n    \"prettier\": \"3.5.3\",\n    \"tsup\": \"^8.4.0\",\n    \"tsx\": \"^4.19.3\",\n    \"typescript\": \"^5.8.3\",\n    \"typescript-eslint\": \"^8.30.1\"\n  }\n}\n","export interface HttpResponse<T> {\n  status: number;\n  headers: Headers;\n  body: T;\n}\n\ntype SearchParams = Record<string, string | number | boolean | undefined | null> | null;\n\nexport class HttpClient {\n  public readonly baseUrl: string;\n  public readonly apiToken: string;\n  public readonly headers: Record<string, string>;\n\n  constructor(baseUrl: string, apiToken: string) {\n    this.baseUrl = baseUrl;\n    this.apiToken = apiToken;\n    this.headers = {\n      Authorization: `Bearer ${this.apiToken}`,\n      'Content-Type': 'application/json'\n    };\n  }\n\n  private async request<R>(\n    url: string,\n    params?: SearchParams,\n    init?: RequestInit\n  ): Promise<HttpResponse<R>> {\n    const urlObject = this.absUrl(url);\n    if (params) {\n      Object.entries(params).forEach(([key, value]) => {\n        urlObject.searchParams.set(key, value?.toString() || '');\n      });\n    }\n    const response = await fetch(urlObject, {\n      ...init,\n      headers: { ...init?.headers, ...this.headers }\n    });\n    const body = await response.json();\n    return {\n      status: response.status,\n      headers: response.headers,\n      body: body as R\n    };\n  }\n\n  private async requestStream<R>(\n    url: string,\n    params?: SearchParams,\n    cb?: (chunk: R) => void,\n    init?: RequestInit\n  ) {\n    const urlObject = this.absUrl(url);\n    if (params) {\n      Object.entries(params).forEach(([key, value]) => {\n        urlObject.searchParams.set(key, value?.toString() || '');\n      });\n    }\n    const response = await fetch(urlObject, {\n      ...init,\n      headers: { ...init?.headers, ...this.headers }\n    });\n    const reader = response.body?.getReader();\n    if (!reader) {\n      throw new Error('response body is not readable');\n    }\n    const decoder = new TextDecoder('utf-8');\n    let buffer = '';\n    while (true) {\n      const { done, value } = await reader.read();\n      if (done) {\n        break;\n      }\n      buffer += decoder.decode(value, { stream: true });\n      const lines = buffer.split('\\n');\n      buffer = lines.pop() || '';\n\n      for (const line of lines) {\n        if (line.trim()) {\n          const json = JSON.parse(line);\n          cb?.(json['result']);\n        }\n      }\n    }\n  }\n\n  absUrl(url: string): URL {\n    if (url.startsWith('http://') || url.startsWith('https://')) {\n      return new URL(url);\n    }\n    return new URL(url, this.baseUrl);\n  }\n\n  async get<R>(url: string, params?: SearchParams): Promise<HttpResponse<R>> {\n    const response = await this.request<R>(url, params);\n    return response;\n  }\n\n  async getStream<R>(url: string, params?: SearchParams, cb?: (chunk: R) => void): Promise<void> {\n    await this.requestStream<R>(url, params, cb);\n  }\n\n  async post<T, R>(url: string, params?: SearchParams, body?: T): Promise<HttpResponse<R>> {\n    const response = await this.request<R>(url, params, {\n      method: 'POST',\n      body: body ? JSON.stringify(body) : undefined\n    });\n    return response;\n  }\n\n  async put<T, R>(url: string, params?: SearchParams, body?: T): Promise<HttpResponse<R>> {\n    const response = await this.request<R>(url, params, {\n      method: 'PUT',\n      body: body ? JSON.stringify(body) : undefined\n    });\n    return response;\n  }\n\n  async delete<R>(url: string, params?: SearchParams): Promise<HttpResponse<R>> {\n    const response = await this.request<R>(url, params, {\n      method: 'DELETE'\n    });\n    return response;\n  }\n}\n","import {\n  ApplicationLogEntry,\n  V1alpha1Application,\n  V1alpha1ApplicationList,\n  V1alpha1ApplicationTree,\n  V1EventList,\n  V1alpha1ResourceAction,\n  V1alpha1ResourceDiff,\n  V1alpha1ResourceResult,\n  V1alpha1ApplicationResourceResult\n} from '../types/argocd-types.js';\nimport { HttpClient } from './http.js';\n\nexport class ArgoCDClient {\n  private baseUrl: string;\n  private apiToken: string;\n  private client: HttpClient;\n\n  constructor(baseUrl: string, apiToken: string) {\n    this.baseUrl = baseUrl;\n    this.apiToken = apiToken;\n    this.client = new HttpClient(this.baseUrl, this.apiToken);\n  }\n\n  public async listApplications(params?: { search?: string; limit?: number; offset?: number }) {\n    const { body } = await this.client.get<V1alpha1ApplicationList>(\n      `/api/v1/applications`,\n      params?.search ? { search: params.search } : undefined\n    );\n\n    // Strip heavy fields to reduce token usage\n    const strippedItems =\n      body.items?.map((app) => ({\n        metadata: {\n          name: app.metadata?.name,\n          namespace: app.metadata?.namespace,\n          labels: app.metadata?.labels,\n          creationTimestamp: app.metadata?.creationTimestamp\n        },\n        spec: {\n          project: app.spec?.project,\n          source: app.spec?.source,\n          destination: app.spec?.destination\n        },\n        status: {\n          sync: app.status?.sync,\n          health: app.status?.health,\n          summary: app.status?.summary\n        }\n      })) ?? [];\n\n    // Apply pagination\n    const start = params?.offset ?? 0;\n    const end = params?.limit ? start + params.limit : strippedItems.length;\n    const items = strippedItems.slice(start, end);\n\n    return {\n      items,\n      metadata: {\n        resourceVersion: body.metadata?.resourceVersion,\n        totalItems: strippedItems.length,\n        returnedItems: items.length,\n        hasMore: end < strippedItems.length\n      }\n    };\n  }\n\n  public async getApplication(applicationName: string, appNamespace?: string) {\n    const queryParams = appNamespace ? { appNamespace } : undefined;\n    const { body } = await this.client.get<V1alpha1Application>(\n      `/api/v1/applications/${applicationName}`,\n      queryParams\n    );\n    return body;\n  }\n\n  public async createApplication(application: V1alpha1Application) {\n    const { body } = await this.client.post<V1alpha1Application, V1alpha1Application>(\n      `/api/v1/applications`,\n      null,\n      application\n    );\n    return body;\n  }\n\n  public async updateApplication(applicationName: string, application: V1alpha1Application) {\n    const { body } = await this.client.put<V1alpha1Application, V1alpha1Application>(\n      `/api/v1/applications/${applicationName}`,\n      null,\n      application\n    );\n    return body;\n  }\n\n  public async deleteApplication(\n    applicationName: string,\n    options?: {\n      appNamespace?: string;\n      cascade?: boolean;\n      propagationPolicy?: string;\n    }\n  ) {\n    const queryParams: Record<string, string | boolean> = {};\n\n    if (options?.appNamespace) {\n      queryParams.appNamespace = options.appNamespace;\n    }\n    if (options?.cascade !== undefined) {\n      queryParams.cascade = options.cascade;\n    }\n    if (options?.propagationPolicy) {\n      queryParams.propagationPolicy = options.propagationPolicy;\n    }\n\n    const { body } = await this.client.delete<V1alpha1Application>(\n      `/api/v1/applications/${applicationName}`,\n      Object.keys(queryParams).length > 0 ? queryParams : undefined\n    );\n    return body;\n  }\n\n  public async syncApplication(\n    applicationName: string,\n    options?: {\n      appNamespace?: string;\n      dryRun?: boolean;\n      prune?: boolean;\n      revision?: string;\n      syncOptions?: string[];\n    }\n  ) {\n    const syncRequest: Record<string, string | boolean | string[]> = {};\n\n    if (options?.appNamespace) {\n      syncRequest.appNamespace = options.appNamespace;\n    }\n    if (options?.dryRun !== undefined) {\n      syncRequest.dryRun = options.dryRun;\n    }\n    if (options?.prune !== undefined) {\n      syncRequest.prune = options.prune;\n    }\n    if (options?.revision) {\n      syncRequest.revision = options.revision;\n    }\n    if (options?.syncOptions) {\n      syncRequest.syncOptions = options.syncOptions;\n    }\n\n    const { body } = await this.client.post<V1alpha1Application, V1alpha1Application>(\n      `/api/v1/applications/${applicationName}/sync`,\n      null,\n      Object.keys(syncRequest).length > 0 ? syncRequest : undefined\n    );\n    return body;\n  }\n\n  public async getApplicationResourceTree(applicationName: string) {\n    const { body } = await this.client.get<V1alpha1ApplicationTree>(\n      `/api/v1/applications/${applicationName}/resource-tree`\n    );\n    return body;\n  }\n\n  public async getApplicationManagedResources(\n    applicationName: string,\n    filters?: {\n      namespace?: string;\n      name?: string;\n      version?: string;\n      group?: string;\n      kind?: string;\n      appNamespace?: string;\n      project?: string;\n    }\n  ) {\n    const { body } = await this.client.get<{ items: V1alpha1ResourceDiff[] }>(\n      `/api/v1/applications/${applicationName}/managed-resources`,\n      filters\n    );\n    return body;\n  }\n\n  public async getApplicationLogs(applicationName: string) {\n    const logs: ApplicationLogEntry[] = [];\n    await this.client.getStream<ApplicationLogEntry>(\n      `/api/v1/applications/${applicationName}/logs`,\n      {\n        follow: false,\n        tailLines: 100\n      },\n      (chunk) => logs.push(chunk)\n    );\n    return logs;\n  }\n\n  public async getWorkloadLogs(\n    applicationName: string,\n    applicationNamespace: string,\n    resourceRef: V1alpha1ResourceResult,\n    container: string\n  ) {\n    const logs: ApplicationLogEntry[] = [];\n    await this.client.getStream<ApplicationLogEntry>(\n      `/api/v1/applications/${applicationName}/logs`,\n      {\n        appNamespace: applicationNamespace,\n        namespace: resourceRef.namespace,\n        resourceName: resourceRef.name,\n        group: resourceRef.group,\n        kind: resourceRef.kind,\n        version: resourceRef.version,\n        follow: false,\n        tailLines: 100,\n        container: container\n      },\n      (chunk) => logs.push(chunk)\n    );\n    return logs;\n  }\n\n  public async getPodLogs(applicationName: string, podName: string) {\n    const logs: ApplicationLogEntry[] = [];\n    await this.client.getStream<ApplicationLogEntry>(\n      `/api/v1/applications/${applicationName}/pods/${podName}/logs`,\n      {\n        follow: false,\n        tailLines: 100\n      },\n      (chunk) => logs.push(chunk)\n    );\n    return logs;\n  }\n\n  public async getApplicationEvents(applicationName: string) {\n    const { body } = await this.client.get<V1EventList>(\n      `/api/v1/applications/${applicationName}/events`\n    );\n    return body;\n  }\n\n  public async getResource(\n    applicationName: string,\n    applicationNamespace: string,\n    resourceRef: V1alpha1ResourceResult\n  ) {\n    const { body } = await this.client.get<V1alpha1ApplicationResourceResult>(\n      `/api/v1/applications/${applicationName}/resource`,\n      {\n        appNamespace: applicationNamespace,\n        namespace: resourceRef.namespace,\n        resourceName: resourceRef.name,\n        group: resourceRef.group,\n        kind: resourceRef.kind,\n        version: resourceRef.version\n      }\n    );\n    return body.manifest;\n  }\n\n  public async getResourceEvents(\n    applicationName: string,\n    applicationNamespace: string,\n    resourceUID: string,\n    resourceNamespace: string,\n    resourceName: string\n  ) {\n    const { body } = await this.client.get<V1EventList>(\n      `/api/v1/applications/${applicationName}/events`,\n      {\n        appNamespace: applicationNamespace,\n        resourceNamespace,\n        resourceUID,\n        resourceName\n      }\n    );\n    return body;\n  }\n\n  public async getResourceActions(\n    applicationName: string,\n    applicationNamespace: string,\n    resourceRef: V1alpha1ResourceResult\n  ) {\n    const { body } = await this.client.get<{ actions: V1alpha1ResourceAction[] }>(\n      `/api/v1/applications/${applicationName}/resource/actions`,\n      {\n        appNamespace: applicationNamespace,\n        namespace: resourceRef.namespace,\n        resourceName: resourceRef.name,\n        group: resourceRef.group,\n        kind: resourceRef.kind,\n        version: resourceRef.version\n      }\n    );\n    return body;\n  }\n\n  public async runResourceAction(\n    applicationName: string,\n    applicationNamespace: string,\n    resourceRef: V1alpha1ResourceResult,\n    action: string\n  ) {\n    const { body } = await this.client.post<string, V1alpha1Application>(\n      `/api/v1/applications/${applicationName}/resource/actions`,\n      {\n        appNamespace: applicationNamespace,\n        namespace: resourceRef.namespace,\n        resourceName: resourceRef.name,\n        group: resourceRef.group,\n        kind: resourceRef.kind,\n        version: resourceRef.version\n      },\n      action\n    );\n    return body;\n  }\n}\n","import { z } from 'zod';\n\nexport const ApplicationNamespaceSchema = z\n  .string()\n  .min(1)\n  .describe(\n    `The namespace where the ArgoCD application resource will be created.\n     This is the namespace of the Application resource itself, not the destination namespace for the application's resources.\n     You can specify any valid Kubernetes namespace (e.g., 'argocd', 'argocd-apps', 'my-namespace', etc.).\n     The default ArgoCD namespace is typically 'argocd', but you can use any namespace you prefer.`\n  );\n\nexport const ResourceRefSchema = z.object({\n  uid: z.string(),\n  kind: z.string(),\n  namespace: z.string(),\n  name: z.string(),\n  version: z.string(),\n  group: z.string()\n});\n\nexport const ApplicationSchema = z.object({\n  metadata: z.object({\n    name: z.string(),\n    namespace: ApplicationNamespaceSchema\n  }),\n  spec: z.object({\n    project: z.string(),\n    source: z.object({\n      repoURL: z.string(),\n      path: z.string(),\n      targetRevision: z.string()\n    }),\n    syncPolicy: z.object({\n      syncOptions: z.array(z.string()),\n      automated: z.object({\n        prune: z.boolean(),\n        selfHeal: z.boolean()\n      }).optional(),\n      retry: z\n        .object({\n          limit: z.number(),\n          backoff: z.object({\n            duration: z.string(),\n            maxDuration: z.string(),\n            factor: z.number()\n          })\n        })\n    }),\n    destination: z.object({\n      server: z.string().optional(),\n      namespace: z.string().optional(),\n      name: z.string().optional()\n    })\n      .refine(\n        (data: { server?: string; name?: string }) =>\n          (!data.server && !!data.name) || (!!data.server && !data.name),\n        {\n          message: \"Only one of server or name must be specified in destination\"\n        }\n      )\n      .describe(\n        `The destination of the application.\n         Only one of server or name must be specified.`\n      )\n  })\n});\n","import { cmd } from './cmd/cmd.js';\nimport dotenv from 'dotenv';\n\ndotenv.config();\ncmd();"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,SAAS,eAAe;;;ACDxB,SAAS,0BAA0B;AACnC,OAAO,aAAa;AACpB,SAAS,4BAA4B;;;ACFrC,SAAS,YAAY;AACrB,SAAS,cAAc;AAEhB,IAAM,SAAS,KAAK,KAAK,YAAY,MAAM,CAAC;;;ACHnD,SAAS,iBAA+B;;;ACAxC;AAAA,EACE,MAAQ;AAAA,EACR,SAAW;AAAA,EACX,aAAe;AAAA,EACf,YAAc;AAAA,IACZ,MAAQ;AAAA,IACR,KAAO;AAAA,EACT;AAAA,EACA,UAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,KAAO;AAAA,IACL,cAAc;AAAA,EAChB;AAAA,EACA,OAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,SAAW;AAAA,IACT,KAAO;AAAA,IACP,WAAW;AAAA,IACX,MAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAS;AAAA,IACT,eAAe;AAAA,IACf,kBAAkB;AAAA,EACpB;AAAA,EACA,QAAU;AAAA,EACV,SAAW;AAAA,EACX,cAAgB;AAAA,IACd,6BAA6B;AAAA,IAC7B,QAAU;AAAA,IACV,SAAW;AAAA,IACX,MAAQ;AAAA,IACR,OAAS;AAAA,IACT,KAAO;AAAA,EACT;AAAA,EACA,iBAAmB;AAAA,IACjB,mCAAmC;AAAA,IACnC,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,cAAgB;AAAA,IAChB,QAAU;AAAA,IACV,0BAA0B;AAAA,IAC1B,0BAA0B;AAAA,IAC1B,UAAY;AAAA,IACZ,MAAQ;AAAA,IACR,KAAO;AAAA,IACP,YAAc;AAAA,IACd,qBAAqB;AAAA,EACvB;AACF;;;AChEO,IAAM,aAAN,MAAiB;AAAA,EAKtB,YAAY,SAAiB,UAAkB;AAC7C,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,UAAU;AAAA,MACb,eAAe,UAAU,KAAK,QAAQ;AAAA,MACtC,gBAAgB;AAAA,IAClB;AAAA,EACF;AAAA,EAEc,QACZ,KACA,QACA,MAC0B;AAAA;AAC1B,YAAM,YAAY,KAAK,OAAO,GAAG;AACjC,UAAI,QAAQ;AACV,eAAO,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC/C,oBAAU,aAAa,IAAI,MAAK,+BAAO,eAAc,EAAE;AAAA,QACzD,CAAC;AAAA,MACH;AACA,YAAM,WAAW,MAAM,MAAM,WAAW,iCACnC,OADmC;AAAA,QAEtC,SAAS,kCAAK,6BAAM,UAAY,KAAK;AAAA,MACvC,EAAC;AACD,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,aAAO;AAAA,QACL,QAAQ,SAAS;AAAA,QACjB,SAAS,SAAS;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA;AAAA,EAEc,cACZ,KACA,QACA,IACA,MACA;AAAA;AAlDJ;AAmDI,YAAM,YAAY,KAAK,OAAO,GAAG;AACjC,UAAI,QAAQ;AACV,eAAO,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC/C,oBAAU,aAAa,IAAI,MAAK,+BAAO,eAAc,EAAE;AAAA,QACzD,CAAC;AAAA,MACH;AACA,YAAM,WAAW,MAAM,MAAM,WAAW,iCACnC,OADmC;AAAA,QAEtC,SAAS,kCAAK,6BAAM,UAAY,KAAK;AAAA,MACvC,EAAC;AACD,YAAM,UAAS,cAAS,SAAT,mBAAe;AAC9B,UAAI,CAAC,QAAQ;AACX,cAAM,IAAI,MAAM,+BAA+B;AAAA,MACjD;AACA,YAAM,UAAU,IAAI,YAAY,OAAO;AACvC,UAAI,SAAS;AACb,aAAO,MAAM;AACX,cAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,YAAI,MAAM;AACR;AAAA,QACF;AACA,kBAAU,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC;AAChD,cAAM,QAAQ,OAAO,MAAM,IAAI;AAC/B,iBAAS,MAAM,IAAI,KAAK;AAExB,mBAAW,QAAQ,OAAO;AACxB,cAAI,KAAK,KAAK,GAAG;AACf,kBAAM,OAAO,KAAK,MAAM,IAAI;AAC5B,qCAAK,KAAK,QAAQ;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA,EAEA,OAAO,KAAkB;AACvB,QAAI,IAAI,WAAW,SAAS,KAAK,IAAI,WAAW,UAAU,GAAG;AAC3D,aAAO,IAAI,IAAI,GAAG;AAAA,IACpB;AACA,WAAO,IAAI,IAAI,KAAK,KAAK,OAAO;AAAA,EAClC;AAAA,EAEM,IAAO,KAAa,QAAiD;AAAA;AACzE,YAAM,WAAW,MAAM,KAAK,QAAW,KAAK,MAAM;AAClD,aAAO;AAAA,IACT;AAAA;AAAA,EAEM,UAAa,KAAa,QAAuB,IAAwC;AAAA;AAC7F,YAAM,KAAK,cAAiB,KAAK,QAAQ,EAAE;AAAA,IAC7C;AAAA;AAAA,EAEM,KAAW,KAAa,QAAuB,MAAoC;AAAA;AACvF,YAAM,WAAW,MAAM,KAAK,QAAW,KAAK,QAAQ;AAAA,QAClD,QAAQ;AAAA,QACR,MAAM,OAAO,KAAK,UAAU,IAAI,IAAI;AAAA,MACtC,CAAC;AACD,aAAO;AAAA,IACT;AAAA;AAAA,EAEM,IAAU,KAAa,QAAuB,MAAoC;AAAA;AACtF,YAAM,WAAW,MAAM,KAAK,QAAW,KAAK,QAAQ;AAAA,QAClD,QAAQ;AAAA,QACR,MAAM,OAAO,KAAK,UAAU,IAAI,IAAI;AAAA,MACtC,CAAC;AACD,aAAO;AAAA,IACT;AAAA;AAAA,EAEM,OAAU,KAAa,QAAiD;AAAA;AAC5E,YAAM,WAAW,MAAM,KAAK,QAAW,KAAK,QAAQ;AAAA,QAClD,QAAQ;AAAA,MACV,CAAC;AACD,aAAO;AAAA,IACT;AAAA;AACF;;;AC9GO,IAAM,eAAN,MAAmB;AAAA,EAKxB,YAAY,SAAiB,UAAkB;AAC7C,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,SAAS,IAAI,WAAW,KAAK,SAAS,KAAK,QAAQ;AAAA,EAC1D;AAAA,EAEa,iBAAiB,QAA+D;AAAA;AAxB/F;AAyBI,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC;AAAA,SACA,iCAAQ,UAAS,EAAE,QAAQ,OAAO,OAAO,IAAI;AAAA,MAC/C;AAGA,YAAM,iBACJ,gBAAK,UAAL,mBAAY,IAAI,CAAC,QAAK;AAhC5B,YAAAA,KAAAC,KAAAC,KAAAC,KAAA;AAgCgC;AAAA,UACxB,UAAU;AAAA,YACR,OAAMH,MAAA,IAAI,aAAJ,gBAAAA,IAAc;AAAA,YACpB,YAAWC,MAAA,IAAI,aAAJ,gBAAAA,IAAc;AAAA,YACzB,SAAQC,MAAA,IAAI,aAAJ,gBAAAA,IAAc;AAAA,YACtB,oBAAmBC,MAAA,IAAI,aAAJ,gBAAAA,IAAc;AAAA,UACnC;AAAA,UACA,MAAM;AAAA,YACJ,UAAS,SAAI,SAAJ,mBAAU;AAAA,YACnB,SAAQ,SAAI,SAAJ,mBAAU;AAAA,YAClB,cAAa,SAAI,SAAJ,mBAAU;AAAA,UACzB;AAAA,UACA,QAAQ;AAAA,YACN,OAAM,SAAI,WAAJ,mBAAY;AAAA,YAClB,SAAQ,SAAI,WAAJ,mBAAY;AAAA,YACpB,UAAS,SAAI,WAAJ,mBAAY;AAAA,UACvB;AAAA,QACF;AAAA,aAjBA,YAiBO,CAAC;AAGV,YAAM,SAAQ,sCAAQ,WAAR,YAAkB;AAChC,YAAM,OAAM,iCAAQ,SAAQ,QAAQ,OAAO,QAAQ,cAAc;AACjE,YAAM,QAAQ,cAAc,MAAM,OAAO,GAAG;AAE5C,aAAO;AAAA,QACL;AAAA,QACA,UAAU;AAAA,UACR,kBAAiB,UAAK,aAAL,mBAAe;AAAA,UAChC,YAAY,cAAc;AAAA,UAC1B,eAAe,MAAM;AAAA,UACrB,SAAS,MAAM,cAAc;AAAA,QAC/B;AAAA,MACF;AAAA,IACF;AAAA;AAAA,EAEa,eAAe,iBAAyB,cAAuB;AAAA;AAC1E,YAAM,cAAc,eAAe,EAAE,aAAa,IAAI;AACtD,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC,wBAAwB,eAAe;AAAA,QACvC;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,kBAAkB,aAAkC;AAAA;AAC/D,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,kBAAkB,iBAAyB,aAAkC;AAAA;AACxF,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC,wBAAwB,eAAe;AAAA,QACvC;AAAA,QACA;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,kBACX,iBACA,SAKA;AAAA;AACA,YAAM,cAAgD,CAAC;AAEvD,UAAI,mCAAS,cAAc;AACzB,oBAAY,eAAe,QAAQ;AAAA,MACrC;AACA,WAAI,mCAAS,aAAY,QAAW;AAClC,oBAAY,UAAU,QAAQ;AAAA,MAChC;AACA,UAAI,mCAAS,mBAAmB;AAC9B,oBAAY,oBAAoB,QAAQ;AAAA,MAC1C;AAEA,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC,wBAAwB,eAAe;AAAA,QACvC,OAAO,KAAK,WAAW,EAAE,SAAS,IAAI,cAAc;AAAA,MACtD;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,gBACX,iBACA,SAOA;AAAA;AACA,YAAM,cAA2D,CAAC;AAElE,UAAI,mCAAS,cAAc;AACzB,oBAAY,eAAe,QAAQ;AAAA,MACrC;AACA,WAAI,mCAAS,YAAW,QAAW;AACjC,oBAAY,SAAS,QAAQ;AAAA,MAC/B;AACA,WAAI,mCAAS,WAAU,QAAW;AAChC,oBAAY,QAAQ,QAAQ;AAAA,MAC9B;AACA,UAAI,mCAAS,UAAU;AACrB,oBAAY,WAAW,QAAQ;AAAA,MACjC;AACA,UAAI,mCAAS,aAAa;AACxB,oBAAY,cAAc,QAAQ;AAAA,MACpC;AAEA,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC,wBAAwB,eAAe;AAAA,QACvC;AAAA,QACA,OAAO,KAAK,WAAW,EAAE,SAAS,IAAI,cAAc;AAAA,MACtD;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,2BAA2B,iBAAyB;AAAA;AAC/D,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC,wBAAwB,eAAe;AAAA,MACzC;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,+BACX,iBACA,SASA;AAAA;AACA,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC,wBAAwB,eAAe;AAAA,QACvC;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,mBAAmB,iBAAyB;AAAA;AACvD,YAAM,OAA8B,CAAC;AACrC,YAAM,KAAK,OAAO;AAAA,QAChB,wBAAwB,eAAe;AAAA,QACvC;AAAA,UACE,QAAQ;AAAA,UACR,WAAW;AAAA,QACb;AAAA,QACA,CAAC,UAAU,KAAK,KAAK,KAAK;AAAA,MAC5B;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,gBACX,iBACA,sBACA,aACA,WACA;AAAA;AACA,YAAM,OAA8B,CAAC;AACrC,YAAM,KAAK,OAAO;AAAA,QAChB,wBAAwB,eAAe;AAAA,QACvC;AAAA,UACE,cAAc;AAAA,UACd,WAAW,YAAY;AAAA,UACvB,cAAc,YAAY;AAAA,UAC1B,OAAO,YAAY;AAAA,UACnB,MAAM,YAAY;AAAA,UAClB,SAAS,YAAY;AAAA,UACrB,QAAQ;AAAA,UACR,WAAW;AAAA,UACX;AAAA,QACF;AAAA,QACA,CAAC,UAAU,KAAK,KAAK,KAAK;AAAA,MAC5B;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,WAAW,iBAAyB,SAAiB;AAAA;AAChE,YAAM,OAA8B,CAAC;AACrC,YAAM,KAAK,OAAO;AAAA,QAChB,wBAAwB,eAAe,SAAS,OAAO;AAAA,QACvD;AAAA,UACE,QAAQ;AAAA,UACR,WAAW;AAAA,QACb;AAAA,QACA,CAAC,UAAU,KAAK,KAAK,KAAK;AAAA,MAC5B;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,qBAAqB,iBAAyB;AAAA;AACzD,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC,wBAAwB,eAAe;AAAA,MACzC;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,YACX,iBACA,sBACA,aACA;AAAA;AACA,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC,wBAAwB,eAAe;AAAA,QACvC;AAAA,UACE,cAAc;AAAA,UACd,WAAW,YAAY;AAAA,UACvB,cAAc,YAAY;AAAA,UAC1B,OAAO,YAAY;AAAA,UACnB,MAAM,YAAY;AAAA,UAClB,SAAS,YAAY;AAAA,QACvB;AAAA,MACF;AACA,aAAO,KAAK;AAAA,IACd;AAAA;AAAA,EAEa,kBACX,iBACA,sBACA,aACA,mBACA,cACA;AAAA;AACA,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC,wBAAwB,eAAe;AAAA,QACvC;AAAA,UACE,cAAc;AAAA,UACd;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,mBACX,iBACA,sBACA,aACA;AAAA;AACA,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC,wBAAwB,eAAe;AAAA,QACvC;AAAA,UACE,cAAc;AAAA,UACd,WAAW,YAAY;AAAA,UACvB,cAAc,YAAY;AAAA,UAC1B,OAAO,YAAY;AAAA,UACnB,MAAM,YAAY;AAAA,UAClB,SAAS,YAAY;AAAA,QACvB;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEa,kBACX,iBACA,sBACA,aACA,QACA;AAAA;AACA,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,OAAO;AAAA,QACjC,wBAAwB,eAAe;AAAA,QACvC;AAAA,UACE,cAAc;AAAA,UACd,WAAW,YAAY;AAAA,UACvB,cAAc,YAAY;AAAA,UAC1B,OAAO,YAAY;AAAA,UACnB,MAAM,YAAY;AAAA,UAClB,SAAS,YAAY;AAAA,QACvB;AAAA,QACA;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA;AACF;;;AH1TA,SAAS,KAAAC,UAAsB;;;AIJ/B,SAAS,SAAS;AAEX,IAAM,6BAA6B,EACvC,OAAO,EACP,IAAI,CAAC,EACL;AAAA,EACC;AAAA;AAAA;AAAA;AAIF;AAEK,IAAM,oBAAoB,EAAE,OAAO;AAAA,EACxC,KAAK,EAAE,OAAO;AAAA,EACd,MAAM,EAAE,OAAO;AAAA,EACf,WAAW,EAAE,OAAO;AAAA,EACpB,MAAM,EAAE,OAAO;AAAA,EACf,SAAS,EAAE,OAAO;AAAA,EAClB,OAAO,EAAE,OAAO;AAClB,CAAC;AAEM,IAAM,oBAAoB,EAAE,OAAO;AAAA,EACxC,UAAU,EAAE,OAAO;AAAA,IACjB,MAAM,EAAE,OAAO;AAAA,IACf,WAAW;AAAA,EACb,CAAC;AAAA,EACD,MAAM,EAAE,OAAO;AAAA,IACb,SAAS,EAAE,OAAO;AAAA,IAClB,QAAQ,EAAE,OAAO;AAAA,MACf,SAAS,EAAE,OAAO;AAAA,MAClB,MAAM,EAAE,OAAO;AAAA,MACf,gBAAgB,EAAE,OAAO;AAAA,IAC3B,CAAC;AAAA,IACD,YAAY,EAAE,OAAO;AAAA,MACnB,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,MAC/B,WAAW,EAAE,OAAO;AAAA,QAClB,OAAO,EAAE,QAAQ;AAAA,QACjB,UAAU,EAAE,QAAQ;AAAA,MACtB,CAAC,EAAE,SAAS;AAAA,MACZ,OAAO,EACJ,OAAO;AAAA,QACN,OAAO,EAAE,OAAO;AAAA,QAChB,SAAS,EAAE,OAAO;AAAA,UAChB,UAAU,EAAE,OAAO;AAAA,UACnB,aAAa,EAAE,OAAO;AAAA,UACtB,QAAQ,EAAE,OAAO;AAAA,QACnB,CAAC;AAAA,MACH,CAAC;AAAA,IACL,CAAC;AAAA,IACD,aAAa,EAAE,OAAO;AAAA,MACpB,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,MAC5B,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,MAC/B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,CAAC,EACE;AAAA,MACC,CAAC,SACE,CAAC,KAAK,UAAU,CAAC,CAAC,KAAK,QAAU,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK;AAAA,MAC3D;AAAA,QACE,SAAS;AAAA,MACX;AAAA,IACF,EACC;AAAA,MACC;AAAA;AAAA,IAEF;AAAA,EACJ,CAAC;AACH,CAAC;;;AJjDM,IAAM,SAAN,cAAqB,UAAU;AAAA,EAGpC,YAAY,YAAwB;AApBtC;AAqBI,UAAM;AAAA,MACJ,MAAM,gBAAY;AAAA,MAClB,SAAS,gBAAY;AAAA,IACvB,CAAC;AACD,SAAK,eAAe,IAAI,aAAa,WAAW,eAAe,WAAW,cAAc;AAExF,UAAM,aACJ,QAAO,aAAQ,IAAI,kBAAZ,YAA6B,EAAE,EACnC,KAAK,EACL,YAAY,MAAM;AAGvB,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,QACE,QAAQC,GACL,OAAO,EACP,SAAS,EACT;AAAA,UACC;AAAA,QACF;AAAA,QACF,OAAOA,GACJ,OAAO,EACP,IAAI,EACJ,SAAS,EACT,SAAS,EACT;AAAA,UACC;AAAA,QACF;AAAA,QACF,QAAQA,GACL,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,EACL,SAAS,EACT;AAAA,UACC;AAAA,QACF;AAAA,MACJ;AAAA,MACA,CAAO,OAA2B,eAA3B,KAA2B,WAA3B,EAAE,QAAQ,OAAO,OAAO,GAAG;AAChC,qBAAM,KAAK,aAAa,iBAAiB;AAAA,UACvC,QAAQ,0BAAU;AAAA,UAClB;AAAA,UACA;AAAA,QACF,CAAC;AAAA;AAAA,IACL;AACA,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,QACE,iBAAiBA,GAAE,OAAO;AAAA,QAC1B,sBAAsB,2BAA2B,SAAS;AAAA,MAC5D;AAAA,MACA,CAAO,OAA2C,eAA3C,KAA2C,WAA3C,EAAE,iBAAiB,qBAAqB,GAAG;AAChD,qBAAM,KAAK,aAAa,eAAe,iBAAiB,oBAAoB;AAAA;AAAA,IAChF;AACA,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA,EAAE,iBAAiBA,GAAE,OAAO,EAAE;AAAA,MAC9B,CAAO,OAAqB,eAArB,KAAqB,WAArB,EAAE,gBAAgB,GAAG;AAC1B,qBAAM,KAAK,aAAa,2BAA2B,eAAe;AAAA;AAAA,IACtE;AACA,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,QACE,iBAAiBA,GAAE,OAAO;AAAA,QAC1B,MAAMA,GACH,OAAO,EACP,SAAS,EACT;AAAA,UACC;AAAA,QACF;AAAA,QACF,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,QAC1E,MAAMA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,QAC9D,SAASA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,QACxE,OAAOA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA,QAC3D,cAAcA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,yCAAyC;AAAA,QACtF,SAASA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,2BAA2B;AAAA,MACrE;AAAA,MACA,CAAO,OAAsF,eAAtF,KAAsF,WAAtF,EAAE,iBAAiB,MAAM,WAAW,MAAM,SAAS,OAAO,cAAc,QAAQ,GAAM;AAC3F,cAAM,UAAU,6GACV,QAAQ,EAAE,KAAK,IACf,aAAa,EAAE,UAAU,IACzB,QAAQ,EAAE,KAAK,IACf,WAAW,EAAE,QAAQ,IACrB,SAAS,EAAE,MAAM,IACjB,gBAAgB,EAAE,aAAa,IAC/B,WAAW,EAAE,QAAQ;AAE3B,eAAO,MAAM,KAAK,aAAa;AAAA,UAC7B;AAAA,UACA,OAAO,KAAK,OAAO,EAAE,SAAS,IAAI,UAAU;AAAA,QAC9C;AAAA,MACF;AAAA,IACF;AACA,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,QACE,iBAAiBA,GAAE,OAAO;AAAA,QAC1B,sBAAsB;AAAA,QACtB,aAAa;AAAA,QACb,WAAWA,GAAE,OAAO;AAAA,MACtB;AAAA,MACA,CAAO,OAAmE,eAAnE,KAAmE,WAAnE,EAAE,iBAAiB,sBAAsB,aAAa,UAAU,GAAG;AACxE,qBAAM,KAAK,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA;AAAA,IACJ;AACA,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA,EAAE,iBAAiBA,GAAE,OAAO,EAAE;AAAA,MAC9B,CAAO,OAAqB,eAArB,KAAqB,WAArB,EAAE,gBAAgB,GAAG;AAAG,qBAAM,KAAK,aAAa,qBAAqB,eAAe;AAAA;AAAA,IAC7F;AACA,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,QACE,iBAAiBA,GAAE,OAAO;AAAA,QAC1B,sBAAsB;AAAA,QACtB,aAAaA,GAAE,OAAO;AAAA,QACtB,mBAAmBA,GAAE,OAAO;AAAA,QAC5B,cAAcA,GAAE,OAAO;AAAA,MACzB;AAAA,MACA,CAAO,OAMJ,eANI,KAMJ,WANI;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,GAAG;AACD,qBAAM,KAAK,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA;AAAA,IACJ;AACA,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,QACE,iBAAiBA,GAAE,OAAO;AAAA,QAC1B,sBAAsB;AAAA,QACtB,cAAc,kBAAkB,MAAM,EAAE,SAAS;AAAA,MACnD;AAAA,MACA,CAAO,OAA4D,eAA5D,KAA4D,WAA5D,EAAE,iBAAiB,sBAAsB,aAAa,GAAM;AA9KzE,YAAAC;AA+KQ,YAAI,OAAO,gBAAgB,CAAC;AAC5B,YAAI,KAAK,WAAW,GAAG;AACrB,gBAAM,OAAO,MAAM,KAAK,aAAa,2BAA2B,eAAe;AAC/E,mBACEA,MAAA,KAAK,UAAL,gBAAAA,IAAY,IAAI,CAAC,UAAU;AAAA,YACzB,KAAK,KAAK;AAAA,YACV,SAAS,KAAK;AAAA,YACd,OAAO,KAAK;AAAA,YACZ,MAAM,KAAK;AAAA,YACX,MAAM,KAAK;AAAA,YACX,WAAW,KAAK;AAAA,UAClB,QAAO,CAAC;AAAA,QACZ;AACA,eAAO,QAAQ;AAAA,UACb,KAAK;AAAA,YAAI,CAAC,QACR,KAAK,aAAa,YAAY,iBAAiB,sBAAsB,GAAG;AAAA,UAC1E;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,QACE,iBAAiBD,GAAE,OAAO;AAAA,QAC1B,sBAAsB;AAAA,QACtB,aAAa;AAAA,MACf;AAAA,MACA,CAAO,OAAwD,eAAxD,KAAwD,WAAxD,EAAE,iBAAiB,sBAAsB,YAAY,GAAG;AAC7D,qBAAM,KAAK,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA;AAAA,IACJ;AAGA,QAAI,CAAC,YAAY;AACf,WAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA,EAAE,aAAa,kBAAkB;AAAA,QACjC,CAAO,OAAiB,eAAjB,KAAiB,WAAjB,EAAE,YAAY,GAAG;AACtB,uBAAM,KAAK,aAAa,kBAAkB,WAAkC;AAAA;AAAA,MAChF;AACA,WAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA,EAAE,iBAAiBA,GAAE,OAAO,GAAG,aAAa,kBAAkB;AAAA,QAC9D,CAAO,OAAkC,eAAlC,KAAkC,WAAlC,EAAE,iBAAiB,YAAY,GAAG;AACvC,uBAAM,KAAK,aAAa;AAAA,YACtB;AAAA,YACA;AAAA,UACF;AAAA;AAAA,MACJ;AACA,WAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,UACE,iBAAiBA,GAAE,OAAO;AAAA,UAC1B,sBAAsB,2BAA2B,SAAS,EAAE;AAAA,YAC1D;AAAA,UACF;AAAA,UACA,SAASA,GACN,QAAQ,EACR,SAAS,EACT,SAAS,oDAAoD;AAAA,UAChE,mBAAmBA,GAChB,OAAO,EACP,SAAS,EACT,SAAS,0EAA0E;AAAA,QACxF;AAAA,QACA,CAAO,OAA0E,eAA1E,KAA0E,WAA1E,EAAE,iBAAiB,sBAAsB,SAAS,kBAAkB,GAAM;AAC/E,gBAAM,UAA4C,CAAC;AACnD,cAAI,qBAAsB,SAAQ,eAAe;AACjD,cAAI,YAAY,OAAW,SAAQ,UAAU;AAC7C,cAAI,kBAAmB,SAAQ,oBAAoB;AAEnD,iBAAO,MAAM,KAAK,aAAa;AAAA,YAC7B;AAAA,YACA,OAAO,KAAK,OAAO,EAAE,SAAS,IAAI,UAAU;AAAA,UAC9C;AAAA,QACF;AAAA,MACF;AACA,WAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,UACE,iBAAiBA,GAAE,OAAO;AAAA,UAC1B,sBAAsB,2BAA2B,SAAS,EAAE;AAAA,YAC1D;AAAA,UACF;AAAA,UACA,QAAQA,GACL,QAAQ,EACR,SAAS,EACT,SAAS,iDAAiD;AAAA,UAC7D,OAAOA,GACJ,QAAQ,EACR,SAAS,EACT,SAAS,2DAA2D;AAAA,UACvE,UAAUA,GACP,OAAO,EACP,SAAS,EACT,SAAS,mDAAmD;AAAA,UAC/D,aAAaA,GACV,MAAMA,GAAE,OAAO,CAAC,EAChB,SAAS,EACT;AAAA,YACC;AAAA,UACF;AAAA,QACJ;AAAA,QACA,CAAO,OAAoF,eAApF,KAAoF,WAApF,EAAE,iBAAiB,sBAAsB,QAAQ,OAAO,UAAU,YAAY,GAAM;AACzF,gBAAM,UAAuD,CAAC;AAC9D,cAAI,qBAAsB,SAAQ,eAAe;AACjD,cAAI,WAAW,OAAW,SAAQ,SAAS;AAC3C,cAAI,UAAU,OAAW,SAAQ,QAAQ;AACzC,cAAI,SAAU,SAAQ,WAAW;AACjC,cAAI,YAAa,SAAQ,cAAc;AAEvC,iBAAO,MAAM,KAAK,aAAa;AAAA,YAC7B;AAAA,YACA,OAAO,KAAK,OAAO,EAAE,SAAS,IAAI,UAAU;AAAA,UAC9C;AAAA,QACF;AAAA,MACF;AACA,WAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,UACE,iBAAiBA,GAAE,OAAO;AAAA,UAC1B,sBAAsB;AAAA,UACtB,aAAa;AAAA,UACb,QAAQA,GAAE,OAAO;AAAA,QACnB;AAAA,QACA,CAAO,OAAgE,eAAhE,KAAgE,WAAhE,EAAE,iBAAiB,sBAAsB,aAAa,OAAO,GAAG;AACrE,uBAAM,KAAK,aAAa;AAAA,YACtB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,kBACN,MACA,aACA,cACA,IACA;AACA,SAAK,KAAK,MAAM,aAAa,cAA6B,IAAU,SAAS;AAC3E,UAAI;AACF,cAAM,SAAS,MAAM,GAAG,MAAM,MAAM,IAAsC;AAC1E,eAAO;AAAA,UACL,SAAS;AAAA,UACT,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,MAAM,EAAE,CAAC;AAAA,QAC1D;AAAA,MACF,SAAS,OAAO;AACd,eAAO;AAAA,UACL,SAAS;AAAA,UACT,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE,CAAC;AAAA,QAC1F;AAAA,MACF;AAAA,IACF,EAAC;AAAA,EACH;AACF;AAEO,IAAM,eAAe,CAAC,eAA2B;AACtD,SAAO,IAAI,OAAO,UAAU;AAC9B;;;AFpVA,SAAS,kBAAkB;AAC3B,SAAS,qCAAqC;AAC9C,SAAS,2BAA2B;AAE7B,IAAM,wBAAwB,MAAM;AACzC,QAAM,SAAS,aAAa;AAAA,IAC1B,eAAe,QAAQ,IAAI,mBAAmB;AAAA,IAC9C,gBAAgB,QAAQ,IAAI,oBAAoB;AAAA,EAClD,CAAC;AAED,SAAO,KAAK,+BAA+B;AAC3C,SAAO,QAAQ,IAAI,qBAAqB,CAAC;AAC3C;AAEO,IAAM,sBAAsB,CAAC,SAAiB;AACnD,QAAM,MAAM,QAAQ;AACpB,QAAM,aAA0D,CAAC;AAEjE,MAAI,IAAI,QAAQ,CAAO,KAAK,QAAQ;AAClC,UAAM,SAAS,aAAa;AAAA,MAC1B,eAAgB,IAAI,QAAQ,mBAAmB,KAAgB;AAAA,MAC/D,gBAAiB,IAAI,QAAQ,oBAAoB,KAAgB;AAAA,IACnE,CAAC;AAED,UAAM,YAAY,IAAI,mBAAmB,aAAa,GAAG;AACzD,eAAW,UAAU,SAAS,IAAI;AAClC,QAAI,GAAG,SAAS,MAAM;AACpB,aAAO,WAAW,UAAU,SAAS;AAAA,IACvC,CAAC;AACD,UAAM,OAAO,QAAQ,SAAS;AAAA,EAChC,EAAC;AAED,MAAI,KAAK,aAAa,CAAO,KAAK,QAAQ;AACxC,UAAM,YAAY,IAAI,MAAM;AAC5B,UAAM,YAAY,WAAW,SAAS;AACtC,QAAI,WAAW;AACb,YAAM,UAAU,kBAAkB,KAAK,GAAG;AAAA,IAC5C,OAAO;AACL,UAAI,OAAO,GAAG,EAAE,KAAK,qCAAqC,SAAS,EAAE;AAAA,IACvE;AAAA,EACF,EAAC;AAED,SAAO,KAAK,wCAAwC,IAAI,EAAE;AAC1D,MAAI,OAAO,IAAI;AACjB;AAEO,IAAM,uBAAuB,CAAC,SAAiB;AACpD,QAAM,MAAM,QAAQ;AACpB,MAAI,IAAI,QAAQ,KAAK,CAAC;AAEtB,QAAM,iBAAyE,CAAC;AAEhF,MAAI,KAAK,QAAQ,CAAO,KAAK,QAAQ;AAzDvC;AA0DI,UAAM,sBAAsB,IAAI,QAAQ,gBAAgB;AACxD,QAAI;AAEJ,QAAI,uBAAuB,eAAe,mBAAmB,GAAG;AAC9D,kBAAY,eAAe,mBAAmB;AAAA,IAChD,WAAW,CAAC,uBAAuB,oBAAoB,IAAI,IAAI,GAAG;AAChE,YAAM,gBACH,IAAI,QAAQ,mBAAmB,KAAgB,QAAQ,IAAI,mBAAmB;AACjF,YAAM,iBACH,IAAI,QAAQ,oBAAoB,KAAgB,QAAQ,IAAI,oBAAoB;AAEnF,UAAI,iBAAiB,MAAM,kBAAkB,IAAI;AAC/C,YACG,OAAO,GAAG,EACV,KAAK,uEAAuE;AAC/E;AAAA,MACF;AAEA,kBAAY,IAAI,8BAA8B;AAAA,QAC5C,oBAAoB,MAAM,WAAW;AAAA,QACrC,sBAAsB,CAAC,iBAAiB;AACtC,yBAAe,YAAY,IAAI;AAAA,QACjC;AAAA,MACF,CAAC;AAED,gBAAU,UAAU,MAAM;AACxB,YAAI,UAAU,WAAW;AACvB,iBAAO,eAAe,UAAU,SAAS;AAAA,QAC3C;AAAA,MACF;AAEA,YAAM,SAAS,aAAa;AAAA,QAC1B;AAAA,QACA;AAAA,MACF,CAAC;AAED,YAAM,OAAO,QAAQ,SAAS;AAAA,IAChC,OAAO;AACL,YAAM,WAAW,sBACb,kCAAkC,mBAAmB,KACrD;AACJ,UAAI,OAAO,GAAG,EAAE,KAAK;AAAA,QACnB,SAAS;AAAA,QACT,OAAO;AAAA,UACL,MAAM;AAAA,UACN,SAAS;AAAA,QACX;AAAA,QACA,MAAI,SAAI,SAAJ,mBAAU,QAAO,SAAY,IAAI,KAAK,KAAK;AAAA,MACjD,CAAC;AACD;AAAA,IACF;AAEA,UAAM,UAAU,cAAc,KAAK,KAAK,IAAI,IAAI;AAAA,EAClD,EAAC;AAED,QAAM,uBAAuB,CAAO,KAAsB,QAA0B;AAClF,UAAM,YAAY,IAAI,QAAQ,gBAAgB;AAC9C,QAAI,CAAC,aAAa,CAAC,eAAe,SAAS,GAAG;AAC5C,UAAI,OAAO,GAAG,EAAE,KAAK,+BAA+B;AACpD;AAAA,IACF;AACA,UAAM,YAAY,eAAe,SAAS;AAC1C,UAAM,UAAU,cAAc,KAAK,GAAG;AAAA,EACxC;AAEA,MAAI,IAAI,QAAQ,oBAAoB;AACpC,MAAI,OAAO,QAAQ,oBAAoB;AAEvC,SAAO,KAAK,gDAAgD,IAAI,EAAE;AAClE,MAAI,OAAO,IAAI;AACjB;;;ADxHO,IAAM,MAAM,MAAM;AACvB,QAAM,MAAM,MAAM,QAAQ,QAAQ,IAAI,CAAC;AAEvC,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IAAC;AAAA,IACP,MAAM,sBAAsB;AAAA,EAC9B;AAEA,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA,CAACE,WAAU;AACT,aAAOA,OAAM,OAAO,QAAQ;AAAA,QAC1B,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,CAAC,EAAE,KAAK,MAAM,oBAAoB,IAAI;AAAA,EACxC;AAEA,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA,CAACA,WAAU;AACT,aAAOA,OAAM,OAAO,QAAQ;AAAA,QAC1B,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,CAAC,EAAE,KAAK,MAAM,qBAAqB,IAAI;AAAA,EACzC;AAEA,MAAI,cAAc,EAAE,UAAU;AAChC;;;AQ1CA,OAAO,YAAY;AAEnB,OAAO,OAAO;AACd,IAAI;","names":["_a","_b","_c","_d","z","z","_a","yargs"]}
Report false positive
criticalDE-002Data ExfiltrationHigh ConfidenceLine 0

Environment file access

Detected by automated pattern matching (rule DE-002) with medium confidence. May be a false positive.

    854: var connectStdioTransport = () => {
    855:   const server = createServer({
>>> 856:     argocdBaseUrl: process.env.ARGOCD_BASE_URL || "",
    857:     argocdApiToken: process.env.ARGOCD_API_TOKEN || ""
    858:   });
Report false positive
criticalDE-002Data ExfiltrationHigh ConfidenceLine 0

Environment file access

Detected by automated pattern matching (rule DE-002) with medium confidence. May be a false positive.

    575:     });
    576:     this.argocdClient = new ArgoCDClient(serverInfo.argocdBaseUrl, serverInfo.argocdApiToken);
>>> 577:     const isReadOnly = String((_a = process.env.MCP_READ_ONLY) != null ? _a : "").trim().toLowerCase() === "true";
    578:     this.addJsonOutputTool(
    579:       "list_applications",
Report false positive
criticalDE-002Data ExfiltrationHigh ConfidenceLine 0

Environment file access

Detected by automated pattern matching (rule DE-002) with medium confidence. May be a false positive.

    899:     } else if (!sessionIdFromHeader && isInitializeRequest(req.body)) {
    900:       const argocdBaseUrl = req.headers["x-argocd-base-url"] || process.env.ARGOCD_BASE_URL || "";
>>> 901:       const argocdApiToken = req.headers["x-argocd-api-token"] || process.env.ARGOCD_API_TOKEN || "";
    902:       if (argocdBaseUrl == "" || argocdApiToken == "") {
    903:         res.status(400).send("x-argocd-base-url and x-argocd-api-token must be provided in headers.");
Report false positive
criticalDE-002Data ExfiltrationHigh ConfidenceLine 0

Environment file access

Detected by automated pattern matching (rule DE-002) with medium confidence. May be a false positive.

    898:       transport = httpTransports[sessionIdFromHeader];
    899:     } else if (!sessionIdFromHeader && isInitializeRequest(req.body)) {
>>> 900:       const argocdBaseUrl = req.headers["x-argocd-base-url"] || process.env.ARGOCD_BASE_URL || "";
    901:       const argocdApiToken = req.headers["x-argocd-api-token"] || process.env.ARGOCD_API_TOKEN || "";
    902:       if (argocdBaseUrl == "" || argocdApiToken == "") {
Report false positive
criticalDE-002Data ExfiltrationHigh ConfidenceLine 0

Environment file access

Detected by automated pattern matching (rule DE-002) with medium confidence. May be a false positive.

    855:   const server = createServer({
    856:     argocdBaseUrl: process.env.ARGOCD_BASE_URL || "",
>>> 857:     argocdApiToken: process.env.ARGOCD_API_TOKEN || ""
    858:   });
    859:   logger.info("Connecting to stdio transport");
Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��^��'��m��-��%��d

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: v� zw�j�+�����

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: WV���E�(��'�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��b��j�e�ƭ���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��b��j�e�ƭ���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: WV���E�(��'�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��@��bq�b�q/z{l

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��)z�r"�'�g�i�^

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��?���z����즊�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: J�b�'���ӭ�즊�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��^��'��m��-��%��d

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: v� zw�j�+�����

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��b��j�e�ƭ���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��b��j�e�ƭ���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��@��bq�b�q/z{l

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��?��y��ץ����

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��@��bq�b�q/z{l

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��?���z����즊�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: J�b�'���ӭ�즊�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: r��y�G��S��즊�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: �{�Ȩ�)�&��7�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��ݕ䞲Ȩ����-

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��ݕ䞲Ȩ����-

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��ݕ䞲Ȩ����-

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: r��y�G��S��즊�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ����Z �)��Z �)�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: r��y�G��S��즊�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: r��y�G��S��즊�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: J�b�'���ӭ�즊�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: J�b�'���ӭ�즊�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: r��y�G��S��즊�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: �{�Ȩ�)�&��7�

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��ݕ䞲Ȩ����-

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��ݕ䞲Ȩ����-

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��ݕ䞲Ȩ����-

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: ��@��bq�b�q/z{l

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
highDO-BASunknownMedium ConfidenceLine 0

Decoded base64 content: j�e�ƭ���jg���

Detected by automated pattern matching (rule DO-BAS) with medium confidence. May be a false positive.

Report false positive
mediumNS-003Network SuspiciousMedium ConfidenceLine 0

JavaScript fetch() call

Detected by automated pattern matching (rule NS-003) with medium confidence. May be a false positive.

    170:         });
    171:       }
>>> 172:       const response = yield fetch(urlObject, __spreadProps(__spreadValues({}, init), {
    173:         headers: __spreadValues(__spreadValues({}, init == null ? void 0 : init.headers), this.headers)
    174:       }));
Report false positive
mediumEN-001unknownMedium ConfidenceLine 0

High-entropy string (4.7 bits/char) — possible encoded payload

Detected by automated pattern matching (rule EN-001) with medium confidence. May be a false positive.

Report false positive
mediumEN-001unknownMedium ConfidenceLine 0

High-entropy string (4.5 bits/char) — possible encoded payload

Detected by automated pattern matching (rule EN-001) with medium confidence. May be a false positive.

Report false positive
mediumEN-001unknownMedium ConfidenceLine 0

High-entropy string (4.5 bits/char) — possible encoded payload

Detected by automated pattern matching (rule EN-001) with medium confidence. May be a false positive.

Report false positive
mediumEN-001unknownMedium ConfidenceLine 0

High-entropy string (4.5 bits/char) — possible encoded payload

Detected by automated pattern matching (rule EN-001) with medium confidence. May be a false positive.

Report false positive
mediumNS-003Network SuspiciousMedium ConfidenceLine 0

JavaScript fetch() call

Detected by automated pattern matching (rule NS-003) with medium confidence. May be a false positive.

>>> 1: {"version":3,"sources":["../src/cmd/cmd.ts","../src/server/transport.ts","../src/logging/logging.ts","../src/server/server.ts","../package.json","../src/argocd/http.ts","../src/argocd/client.ts","../src/shared/models/schema.ts","../src/index.ts"],"sourcesContent":["import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport {\n  connectStdioTransport,\n  connectHttpTransport,\n  connectSSETransport\n} from '../server/transport.js';\n\nexport const cmd = () => {\n  const exe = yargs(hideBin(process.argv));\n\n  exe.command(\n    'stdio',\n    'Start ArgoCD MCP server using stdio.',\n    () => {},\n    () => connectStdioTransport()\n  );\n\n  exe.command(\n    'sse',\n    'Start ArgoCD MCP server using SSE.',\n    (yargs) => {\n      return yargs.option('port', {\n        type: 'number',\n        default: 3000\n      });\n    },\n    ({ port }) => connectSSETransport(port)\n  );\n\n  exe.command(\n    'http',\n    'Start ArgoCD MCP server using Http Stream.',\n    (yargs) => {\n      return yargs.option('port', {\n        type: 'number',\n        default: 3000\n      });\n    },\n    ({ port }) => connectHttpTransport(port)\n  );\n\n  exe.demandCommand().parseSync();\n};\n","import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';\nimport express from 'express';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { logger } from '../logging/logging.js';\nimport { createServer } from './server.js';\nimport { randomUUID } from 'node:crypto';\nimport { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';\nimport { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';\n\nexport const connectStdioTransport = () => {\n  const server = createServer({\n    argocdBaseUrl: process.env.ARGOCD_BASE_URL || '',\n    argocdApiToken: process.env.ARGOCD_API_TOKEN || ''\n  });\n\n  logger.info('Connecting to stdio transport');\n  server.connect(new StdioServerTransport());\n};\n\nexport const connectSSETransport = (port: number) => {\n  const app = express();\n  const transports: { [sessionId: string]: SSEServerTransport } = {};\n\n  app.get('/sse', async (req, res) => {\n    const server = createServer({\n      argocdBaseUrl: (req.headers['x-argocd-base-url'] as string) || '',\n      argocdApiToken: (req.headers['x-argocd-api-token'] as string) || ''\n    });\n\n    const transport = new SSEServerTransport('/messages', res);\n    transports[transport.sessionId] = transport;\n    res.on('close', () => {\n      delete transports[transport.sessionId];\n    });\n    await server.connect(transport);\n  });\n\n  app.post('/messages', async (req, res) => {\n    const sessionId = req.query.sessionId as string;\n    const transport = transports[sessionId];\n    if (transport) {\n      await transport.handlePostMessage(req, res);\n    } else {\n      res.status(400).send(`No transport found for sessionId: ${sessionId}`);\n    }\n  });\n\n  logger.info(`Connecting to SSE transport on port: ${port}`);\n  app.listen(port);\n};\n\nexport const connectHttpTransport = (port: number) => {\n  const app = express();\n  app.use(express.json());\n\n  const httpTransports: { [sessionId: string]: StreamableHTTPServerTransport } = {};\n\n  app.post('/mcp', async (req, res) => {\n    const sessionIdFromHeader = req.headers['mcp-session-id'] as string | undefined;\n    let transport: StreamableHTTPServerTransport;\n\n    if (sessionIdFromHeader && httpTransports[sessionIdFromHeader]) {\n      transport = httpTransports[sessionIdFromHeader];\n    } else if (!sessionIdFromHeader && isInitializeRequest(req.body)) {\n      const argocdBaseUrl =\n        (req.headers['x-argocd-base-url'] as string) || process.env.ARGOCD_BASE_URL || '';\n      const argocdApiToken =\n        (req.headers['x-argocd-api-token'] as string) || process.env.ARGOCD_API_TOKEN || '';\n\n      if (argocdBaseUrl == '' || argocdApiToken == '') {\n        res\n          .status(400)\n          .send('x-argocd-base-url and x-argocd-api-token must be provided in headers.');\n        return;\n      }\n\n      transport = new StreamableHTTPServerTransport({\n        sessionIdGenerator: () => randomUUID(),\n        onsessioninitialized: (newSessionId) => {\n          httpTransports[newSessionId] = transport;\n        }\n      });\n\n      transport.onclose = () => {\n        if (transport.sessionId) {\n          delete httpTransports[transport.sessionId];\n        }\n      };\n\n      const server = createServer({\n        argocdBaseUrl,\n        argocdApiToken\n      });\n\n      await server.connect(transport);\n    } else {\n      const errorMsg = sessionIdFromHeader\n        ? `Invalid or expired session ID: ${sessionIdFromHeader}`\n        : 'Bad Request: Not an initialization request and no valid session ID provided.';\n      res.status(400).json({\n        jsonrpc: '2.0',\n        error: {\n          code: -32000,\n          message: errorMsg\n        },\n        id: req.body?.id !== undefined ? req.body.id : null\n      });\n      return;\n    }\n\n    await transport.handleRequest(req, res, req.body);\n  });\n\n  const handleSessionRequest = async (req: express.Request, res: express.Response) => {\n    const sessionId = req.headers['mcp-session-id'] as string | undefined;\n    if (!sessionId || !httpTransports[sessionId]) {\n      res.status(400).send('Invalid or missing session ID');\n      return;\n    }\n    const transport = httpTransports[sessionId];\n    await transport.handleRequest(req, res);\n  };\n\n  app.get('/mcp', handleSessionRequest);\n  app.delete('/mcp', handleSessionRequest);\n\n  logger.info(`Connecting to Http Stream transport on port: ${port}`);\n  app.listen(port);\n};\n","import { pino } from 'pino';\nimport { stderr } from 'process';\n\nexport const logger = pino(pino.destination(stderr));\n","import { McpServer, ToolCallback } from '@modelcontextprotocol/sdk/server/mcp.js';\n\nimport packageJSON from '../../package.json' with { type: 'json' };\nimport { ArgoCDClient } from '../argocd/client.js';\nimport { z, ZodRawShape } from 'zod';\nimport { V1alpha1Application, V1alpha1ResourceResult } from '../types/argocd-types.js';\nimport {\n  ApplicationNamespaceSchema,\n  ApplicationSchema,\n  ResourceRefSchema\n} from '../shared/models/schema.js';\n\ntype ServerInfo = {\n  argocdBaseUrl: string;\n  argocdApiToken: string;\n};\n\nexport class Server extends McpServer {\n  private argocdClient: ArgoCDClient;\n\n  constructor(serverInfo: ServerInfo) {\n    super({\n      name: packageJSON.name,\n      version: packageJSON.version\n    });\n    this.argocdClient = new ArgoCDClient(serverInfo.argocdBaseUrl, serverInfo.argocdApiToken);\n\n    const isReadOnly =\n      String(process.env.MCP_READ_ONLY ?? '')\n        .trim()\n        .toLowerCase() === 'true';\n\n    // Always register read/query tools\n    this.addJsonOutputTool(\n      'list_applications',\n      'list_applications returns list of applications',\n      {\n        search: z\n          .string()\n          .optional()\n          .describe(\n            'Search applications by name. This is a partial match on the application name and does not support glob patterns (e.g. \"*\"). Optional.'\n          ),\n        limit: z\n          .number()\n          .int()\n          .positive()\n          .optional()\n          .describe(\n            'Maximum number of applications to return. Use this to reduce token usage when there are many applications. Optional.'\n          ),\n        offset: z\n          .number()\n          .int()\n          .min(0)\n          .optional()\n          .describe(\n            'Number of applications to skip before returning results. Use with limit for pagination. Optional.'\n          )\n      },\n      async ({ search, limit, offset }) =>\n        await this.argocdClient.listApplications({\n          search: search ?? undefined,\n          limit,\n          offset\n        })\n    );\n    this.addJsonOutputTool(\n      'get_application',\n      'get_application returns application by application name. Optionally specify the application namespace to get applications from non-default namespaces.',\n      {\n        applicationName: z.string(),\n        applicationNamespace: ApplicationNamespaceSchema.optional()\n      },\n      async ({ applicationName, applicationNamespace }) =>\n        await this.argocdClient.getApplication(applicationName, applicationNamespace)\n    );\n    this.addJsonOutputTool(\n      'get_application_resource_tree',\n      'get_application_resource_tree returns resource tree for application by application name',\n      { applicationName: z.string() },\n      async ({ applicationName }) =>\n        await this.argocdClient.getApplicationResourceTree(applicationName)\n    );\n    this.addJsonOutputTool(\n      'get_application_managed_resources',\n      'get_application_managed_resources returns managed resources for application by application name with optional filtering. Use filters to avoid token limits with large applications. Examples: kind=\"ConfigMap\" for config maps only, namespace=\"production\" for specific namespace, or combine multiple filters.',\n      {\n        applicationName: z.string(),\n        kind: z\n          .string()\n          .optional()\n          .describe(\n            'Filter by Kubernetes resource kind (e.g., \"ConfigMap\", \"Secret\", \"Deployment\")'\n          ),\n        namespace: z.string().optional().describe('Filter by Kubernetes namespace'),\n        name: z.string().optional().describe('Filter by resource name'),\n        version: z.string().optional().describe('Filter by resource API version'),\n        group: z.string().optional().describe('Filter by API group'),\n        appNamespace: z.string().optional().describe('Filter by Argo CD application namespace'),\n        project: z.string().optional().describe('Filter by Argo CD project')\n      },\n      async ({ applicationName, kind, namespace, name, version, group, appNamespace, project }) => {\n        const filters = {\n          ...(kind && { kind }),\n          ...(namespace && { namespace }),\n          ...(name && { name }),\n          ...(version && { version }),\n          ...(group && { group }),\n          ...(appNamespace && { appNamespace }),\n          ...(project && { project })\n        };\n        return await this.argocdClient.getApplicationManagedResources(\n          applicationName,\n          Object.keys(filters).length > 0 ? filters : undefined\n        );\n      }\n    );\n    this.addJsonOutputTool(\n      'get_application_workload_logs',\n      'get_application_workload_logs returns logs for application workload (Deployment, StatefulSet, Pod, etc.) by application name and resource ref and optionally container name',\n      {\n        applicationName: z.string(),\n        applicationNamespace: ApplicationNamespaceSchema,\n        resourceRef: ResourceRefSchema,\n        container: z.string()\n      },\n      async ({ applicationName, applicationNamespace, resourceRef, container }) =>\n        await this.argocdClient.getWorkloadLogs(\n          applicationName,\n          applicationNamespace,\n          resourceRef as V1alpha1ResourceResult,\n          container\n        )\n    );\n    this.addJsonOutputTool(\n      'get_application_events',\n      'get_application_events returns events for application by application name',\n      { applicationName: z.string() },\n      async ({ applicationName }) => await this.argocdClient.getApplicationEvents(applicationName)\n    );\n    this.addJsonOutputTool(\n      'get_resource_events',\n      'get_resource_events returns events for a resource that is managed by an application',\n      {\n        applicationName: z.string(),\n        applicationNamespace: ApplicationNamespaceSchema,\n        resourceUID: z.string(),\n        resourceNamespace: z.string(),\n        resourceName: z.string()\n      },\n      async ({\n        applicationName,\n        applicationNamespace,\n        resourceUID,\n        resourceNamespace,\n        resourceName\n      }) =>\n        await this.argocdClient.getResourceEvents(\n          applicationName,\n          applicationNamespace,\n          resourceUID,\n          resourceNamespace,\n          resourceName\n        )\n    );\n    this.addJsonOutputTool(\n      'get_resources',\n      'get_resources return manifests for resources specified by resourceRefs. If resourceRefs is empty or not provided, fetches all resources managed by the application.',\n      {\n        applicationName: z.string(),\n        applicationNamespace: ApplicationNamespaceSchema,\n        resourceRefs: ResourceRefSchema.array().optional()\n      },\n      async ({ applicationName, applicationNamespace, resourceRefs }) => {\n        let refs = resourceRefs || [];\n        if (refs.length === 0) {\n          const tree = await this.argocdClient.getApplicationResourceTree(applicationName);\n          refs =\n            tree.nodes?.map((node) => ({\n              uid: node.uid!,\n              version: node.version!,\n              group: node.group!,\n              kind: node.kind!,\n              name: node.name!,\n              namespace: node.namespace!\n            })) || [];\n        }\n        return Promise.all(\n          refs.map((ref) =>\n            this.argocdClient.getResource(applicationName, applicationNamespace, ref)\n          )\n        );\n      }\n    );\n    this.addJsonOutputTool(\n      'get_resource_actions',\n      'get_resource_actions returns actions for a resource that is managed by an application',\n      {\n        applicationName: z.string(),\n        applicationNamespace: ApplicationNamespaceSchema,\n        resourceRef: ResourceRefSchema\n      },\n      async ({ applicationName, applicationNamespace, resourceRef }) =>\n        await this.argocdClient.getResourceActions(\n          applicationName,\n          applicationNamespace,\n          resourceRef as V1alpha1ResourceResult\n        )\n    );\n\n    // Only register modification tools if not in read-only mode\n    if (!isReadOnly) {\n      this.addJsonOutputTool(\n        'create_application',\n        'create_application creates a new ArgoCD application in the specified namespace. The application.metadata.namespace field determines where the Application resource will be created (e.g., \"argocd\", \"argocd-apps\", or any custom namespace).',\n        { application: ApplicationSchema },\n        async ({ application }) =>\n          await this.argocdClient.createApplication(application as V1alpha1Application)\n      );\n      this.addJsonOutputTool(\n        'update_application',\n        'update_application updates application',\n        { applicationName: z.string(), application: ApplicationSchema },\n        async ({ applicationName, application }) =>\n          await this.argocdClient.updateApplication(\n            applicationName,\n            application as V1alpha1Application\n          )\n      );\n      this.addJsonOutputTool(\n        'delete_application',\n        'delete_application deletes application. Specify applicationNamespace if the application is in a non-default namespace to avoid permission errors.',\n        {\n          applicationName: z.string(),\n          applicationNamespace: ApplicationNamespaceSchema.optional().describe(\n            'The namespace where the application is located. Required if application is not in the default namespace.'\n          ),\n          cascade: z\n            .boolean()\n            .optional()\n            .describe('Whether to cascade the deletion to child resources'),\n          propagationPolicy: z\n            .string()\n            .optional()\n            .describe('Deletion propagation policy (e.g., \"Foreground\", \"Background\", \"Orphan\")')\n        },\n        async ({ applicationName, applicationNamespace, cascade, propagationPolicy }) => {\n          const options: Record<string, string | boolean> = {};\n          if (applicationNamespace) options.appNamespace = applicationNamespace;\n          if (cascade !== undefined) options.cascade = cascade;\n          if (propagationPolicy) options.propagationPolicy = propagationPolicy;\n\n          return await this.argocdClient.deleteApplication(\n            applicationName,\n            Object.keys(options).length > 0 ? options : undefined\n          );\n        }\n      );\n      this.addJsonOutputTool(\n        'sync_application',\n        'sync_application syncs application. Specify applicationNamespace if the application is in a non-default namespace to avoid permission errors.',\n        {\n          applicationName: z.string(),\n          applicationNamespace: ApplicationNamespaceSchema.optional().describe(\n            'The namespace where the application is located. Required if application is not in the default namespace.'\n          ),\n          dryRun: z\n            .boolean()\n            .optional()\n            .describe('Perform a dry run sync without applying changes'),\n          prune: z\n            .boolean()\n            .optional()\n            .describe('Remove resources that are no longer defined in the source'),\n          revision: z\n            .string()\n            .optional()\n            .describe('Sync to a specific revision instead of the latest'),\n          syncOptions: z\n            .array(z.string())\n            .optional()\n            .describe(\n              'Additional sync options (e.g., [\"CreateNamespace=true\", \"PrunePropagationPolicy=foreground\"])'\n            )\n        },\n        async ({ applicationName, applicationNamespace, dryRun, prune, revision, syncOptions }) => {\n          const options: Record<string, string | boolean | string[]> = {};\n          if (applicationNamespace) options.appNamespace = applicationNamespace;\n          if (dryRun !== undefined) options.dryRun = dryRun;\n          if (prune !== undefined) options.prune = prune;\n          if (revision) options.revision = revision;\n          if (syncOptions) options.syncOptions = syncOptions;\n\n          return await this.argocdClient.syncApplication(\n            applicationName,\n            Object.keys(options).length > 0 ? options : undefined\n          );\n        }\n      );\n      this.addJsonOutputTool(\n        'run_resource_action',\n        'run_resource_action runs an action on a resource',\n        {\n          applicationName: z.string(),\n          applicationNamespace: ApplicationNamespaceSchema,\n          resourceRef: ResourceRefSchema,\n          action: z.string()\n        },\n        async ({ applicationName, applicationNamespace, resourceRef, action }) =>\n          await this.argocdClient.runResourceAction(\n            applicationName,\n            applicationNamespace,\n            resourceRef as V1alpha1ResourceResult,\n            action\n          )\n      );\n    }\n  }\n\n  private addJsonOutputTool<Args extends ZodRawShape, T>(\n    name: string,\n    description: string,\n    paramsSchema: Args,\n    cb: (...cbArgs: Parameters<ToolCallback<Args>>) => T\n  ) {\n    this.tool(name, description, paramsSchema as ZodRawShape, async (...args) => {\n      try {\n        const result = await cb.apply(this, args as Parameters<ToolCallback<Args>>);\n        return {\n          isError: false,\n          content: [{ type: 'text', text: JSON.stringify(result) }]\n        };\n      } catch (error) {\n        return {\n          isError: true,\n          content: [{ type: 'text', text: error instanceof Error ? error.message : String(error) }]\n        };\n      }\n    });\n  }\n}\n\nexport const createServer = (serverInfo: ServerInfo) => {\n  return new Server(serverInfo);\n};\n","{\n  \"name\": \"argocd-mcp\",\n  \"version\": \"0.0.0\",\n  \"description\": \"Argo CD MCP Server\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/argoproj-labs/mcp-for-argocd.git\"\n  },\n  \"keywords\": [\n    \"mcp\",\n    \"argocd\",\n    \"argocd-mcp\",\n    \"argocd-mcp-server\",\n    \"argo-cd\",\n    \"argo-cd-mcp\",\n    \"argo-cd-mcp-server\",\n    \"cicd\",\n    \"cicd-mcp\",\n    \"cicd-mcp-server\",\n    \"gitops\",\n    \"gitops-mcp\",\n    \"gitops-mcp-server\",\n    \"kubernetes\",\n    \"kubernetes-mcp\",\n    \"kubernetes-mcp-server\"\n  ],\n  \"main\": \"dist/index.js\",\n  \"type\": \"module\",\n  \"bin\": {\n    \"argocd-mcp\": \"dist/index.js\"\n  },\n  \"files\": [\n    \"dist\",\n    \"images\",\n    \"README.md\",\n    \"LICENSE\"\n  ],\n  \"scripts\": {\n    \"dev\": \"tsx watch src/index.ts http\",\n    \"dev-sse\": \"tsx watch src/index.ts sse\",\n    \"lint\": \"eslint src/**/*.ts --no-warn-ignored\",\n    \"lint:fix\": \"eslint src/**/*.ts --fix\",\n    \"build\": \"tsup\",\n    \"build:watch\": \"tsup --watch\",\n    \"generate-types\": \"dtsgen -c dtsgen.json -o src/types/argocd.d.ts swagger.json\"\n  },\n  \"author\": \"Argo Proj Contributors.\",\n  \"license\": \"Apache-2.0\",\n  \"dependencies\": {\n    \"@modelcontextprotocol/sdk\": \"^1.10.1\",\n    \"dotenv\": \"^16.5.0\",\n    \"express\": \"^5.1.0\",\n    \"pino\": \"^9.6.0\",\n    \"yargs\": \"^17.7.2\",\n    \"zod\": \"^3.24.3\"\n  },\n  \"devDependencies\": {\n    \"@dtsgenerator/replace-namespace\": \"^1.7.0\",\n    \"@eslint/js\": \"^9.25.0\",\n    \"@types/express\": \"^5.0.1\",\n    \"@types/node\": \"^22.14.1\",\n    \"@types/yargs\": \"^17.0.33\",\n    \"dtsgenerator\": \"^3.19.2\",\n    \"eslint\": \"^9.25.0\",\n    \"eslint-config-prettier\": \"^10.1.2\",\n    \"eslint-plugin-prettier\": \"^5.2.6\",\n    \"prettier\": \"3.5.3\",\n    \"tsup\": \"^8.4.0\",\n    \"tsx\": \"^4.19.3\",\n    \"typescript\": \"^5.8.3\",\n    \"typescript-eslint\": \"^8.30.1\"\n  }\n}\n","export interface HttpResponse<T> {\n  status: number;\n  headers: Headers;\n  body: T;\n}\n\ntype SearchParams = Record<string, string | number | boolean | undefined | null> | null;\n\nexport class HttpClient {\n  public readonly baseUrl: string;\n  public readonly apiToken: string;\n  public readonly headers: Record<string, string>;\n\n  constructor(baseUrl: string, apiToken: string) {\n    this.baseUrl = baseUrl;\n    this.apiToken = apiToken;\n    this.headers = {\n      Authorization: `Bearer ${this.apiToken}`,\n      'Content-Type': 'application/json'\n    };\n  }\n\n  private async request<R>(\n    url: string,\n    params?: SearchParams,\n    init?: RequestInit\n  ): Promise<HttpResponse<R>> {\n    const urlObject = this.absUrl(url);\n    if (params) {\n      Object.entries(params).forEach(([key, value]) => {\n        urlObject.searchParams.set(key, value?.toString() || '');\n      });\n    }\n    const response = await fetch(urlObject, {\n      ...init,\n      headers: { ...init?.headers, ...this.headers }\n    });\n    const body = await response.json();\n    return {\n      status: response.status,\n      headers: response.headers,\n      body: body as R\n    };\n  }\n\n  private async requestStream<R>(\n    url: string,\n    params?: SearchParams,\n    cb?: (chunk: R) => void,\n    init?: RequestInit\n  ) {\n    const urlObject = this.absUrl(url);\n    if (params) {\n      Object.entries(params).forEach(([key, value]) => {\n        urlObject.searchParams.set(key, value?.toString() || '');\n      });\n    }\n    const response = await fetch(urlObject, {\n      ...init,\n      headers: { ...init?.headers, ...this.headers }\n    });\n    const reader = response.body?.getReader();\n    if (!reader) {\n      throw new Error('response body is not readable');\n    }\n    const decoder = new TextDecoder('utf-8');\n    let buffer = '';\n    while (true) {\n      const { done, value } = await reader.read();\n      if (done) {\n        break;\n      }\n      buffer += decoder.decode(value, { stream: true });\n      const lines = buffer.split('\\n');\n      buffer = lines.pop() || '';\n\n      for (const line of lines) {\n        if (line.trim()) {\n          const json = JSON.parse(line);\n          cb?.(json['result']);\n        }\n      }\n    }\n  }\n\n  absUrl(url: string): URL {\n    if (url.startsWith('http://') || url.startsWith('https://')) {\n      return new URL(url);\n    }\n    return new URL(url, this.baseUrl);\n  }\n\n  async get<R>(url: string, params?: SearchParams): Promise<HttpResponse<R>> {\n    const response = await this.request<R>(url, params);\n    return response;\n  }\n\n  async getStream<R>(url: string, params?: SearchParams, cb?: (chunk: R) => void): Promise<void> {\n    await this.requestStream<R>(url, params, cb);\n  }\n\n  async post<T, R>(url: string, params?: SearchParams, body?: T): Promise<HttpResponse<R>> {\n    const response = await this.request<R>(url, params, {\n      method: 'POST',\n      body: body ? JSON.stringify(body) : undefined\n    });\n    return response;\n  }\n\n  async put<T, R>(url: string, params?: SearchParams, body?: T): Promise<HttpResponse<R>> {\n    const response = await this.request<R>(url, params, {\n      method: 'PUT',\n      body: body ? JSON.stringify(body) : undefined\n    });\n    return response;\n  }\n\n  async delete<R>(url: string, params?: SearchParams): Promise<HttpResponse<R>> {\n    const response = await this.request<R>(url, params, {\n      method: 'DELETE'\n    });\n    return response;\n  }\n}\n","import {\n  ApplicationLogEntry,\n  V1alpha1Application,\n  V1alpha1ApplicationList,\n  V1alpha1ApplicationTree,\n  V1EventList,\n  V1alpha1ResourceAction,\n  V1alpha1ResourceDiff,\n  V1alpha1ResourceResult,\n  V1alpha1ApplicationResourceResult\n} from '../types/argocd-types.js';\nimport { HttpClient } from './http.js';\n\nexport class ArgoCDClient {\n  private baseUrl: string;\n  private apiToken: string;\n  private client: HttpClient;\n\n  constructor(baseUrl: string, apiToken: string) {\n    this.baseUrl = baseUrl;\n    this.apiToken = apiToken;\n    this.client = new HttpClient(this.baseUrl, this.apiToken);\n  }\n\n  public async listApplications(params?: { search?: string; limit?: number; offset?: number }) {\n    const { body } = await this.client.get<V1alpha1ApplicationList>(\n      `/api/v1/applications`,\n      params?.search ? { search: params.search } : undefined\n    );\n\n    // Strip heavy fields to reduce token usage\n    const strippedItems =\n      body.items?.map((app) => ({\n        metadata: {\n          name: app.metadata?.name,\n          namespace: app.metadata?.namespace,\n          labels: app.metadata?.labels,\n          creationTimestamp: app.metadata?.creationTimestamp\n        },\n        spec: {\n          project: app.spec?.project,\n          source: app.spec?.source,\n          destination: app.spec?.destination\n        },\n        status: {\n          sync: app.status?.sync,\n          health: app.status?.health,\n          summary: app.status?.summary\n        }\n      })) ?? [];\n\n    // Apply pagination\n    const start = params?.offset ?? 0;\n    const end = params?.limit ? start + params.limit : strippedItems.length;\n    const items = strippedItems.slice(start, end);\n\n    return {\n      items,\n      metadata: {\n        resourceVersion: body.metadata?.resourceVersion,\n        totalItems: strippedItems.length,\n        returnedItems: items.length,\n        hasMore: end < strippedItems.length\n      }\n    };\n  }\n\n  public async getApplication(applicationName: string, appNamespace?: string) {\n    const queryParams = appNamespace ? { appNamespace } : undefined;\n    const { body } = await this.client.get<V1alpha1Application>(\n      `/api/v1/applications/${applicationName}`,\n      queryParams\n    );\n    return body;\n  }\n\n  public async createApplication(application: V1alpha1Application) {\n    const { body } = await this.client.post<V1alpha1Application, V1alpha1Application>(\n      `/api/v1/applications`,\n      null,\n      application\n    );\n    return body;\n  }\n\n  public async updateApplication(applicationName: string, application: V1alpha1Application) {\n    const { body } = await this.client.put<V1alpha1Application, V1alpha1Application>(\n      `/api/v1/applications/${applicationName}`,\n      null,\n      application\n    );\n    return body;\n  }\n\n  public async deleteApplication(\n    applicationName: string,\n    options?: {\n      appNamespace?: string;\n      cascade?: boolean;\n      propagationPolicy?: string;\n    }\n  ) {\n    const queryParams: Record<string, string | boolean> = {};\n\n    if (options?.appNamespace) {\n      queryParams.appNamespace = options.appNamespace;\n    }\n    if (options?.cascade !== undefined) {\n      queryParams.cascade = options.cascade;\n    }\n    if (options?.propagationPolicy) {\n      queryParams.propagationPolicy = options.propagationPolicy;\n    }\n\n    const { body } = await this.client.delete<V1alpha1Application>(\n      `/api/v1/applications/${applicationName}`,\n      Object.keys(queryParams).length > 0 ? queryParams : undefined\n    );\n    return body;\n  }\n\n  public async syncApplication(\n    applicationName: string,\n    options?: {\n      appNamespace?: string;\n      dryRun?: boolean;\n      prune?: boolean;\n      revision?: string;\n      syncOptions?: string[];\n    }\n  ) {\n    const syncRequest: Record<string, string | boolean | string[]> = {};\n\n    if (options?.appNamespace) {\n      syncRequest.appNamespace = options.appNamespace;\n    }\n    if (options?.dryRun !== undefined) {\n      syncRequest.dryRun = options.dryRun;\n    }\n    if (options?.prune !== undefined) {\n      syncRequest.prune = options.prune;\n    }\n    if (options?.revision) {\n      syncRequest.revision = options.revision;\n    }\n    if (options?.syncOptions) {\n      syncRequest.syncOptions = options.syncOptions;\n    }\n\n    const { body } = await this.client.post<V1alpha1Application, V1alpha1Application>(\n      `/api/v1/applications/${applicationName}/sync`,\n      null,\n      Object.keys(syncRequest).length > 0 ? syncRequest : undefined\n    );\n    return body;\n  }\n\n  public async getApplicationResourceTree(applicationName: string) {\n    const { body } = await this.client.get<V1alpha1ApplicationTree>(\n      `/api/v1/applications/${applicationName}/resource-tree`\n    );\n    return body;\n  }\n\n  public async getApplicationManagedResources(\n    applicationName: string,\n    filters?: {\n      namespace?: string;\n      name?: string;\n      version?: string;\n      group?: string;\n      kind?: string;\n      appNamespace?: string;\n      project?: string;\n    }\n  ) {\n    const { body } = await this.client.get<{ items: V1alpha1ResourceDiff[] }>(\n      `/api/v1/applications/${applicationName}/managed-resources`,\n      filters\n    );\n    return body;\n  }\n\n  public async getApplicationLogs(applicationName: string) {\n    const logs: ApplicationLogEntry[] = [];\n    await this.client.getStream<ApplicationLogEntry>(\n      `/api/v1/applications/${applicationName}/logs`,\n      {\n        follow: false,\n        tailLines: 100\n      },\n      (chunk) => logs.push(chunk)\n    );\n    return logs;\n  }\n\n  public async getWorkloadLogs(\n    applicationName: string,\n    applicationNamespace: string,\n    resourceRef: V1alpha1ResourceResult,\n    container: string\n  ) {\n    const logs: ApplicationLogEntry[] = [];\n    await this.client.getStream<ApplicationLogEntry>(\n      `/api/v1/applications/${applicationName}/logs`,\n      {\n        appNamespace: applicationNamespace,\n        namespace: resourceRef.namespace,\n        resourceName: resourceRef.name,\n        group: resourceRef.group,\n        kind: resourceRef.kind,\n        version: resourceRef.version,\n        follow: false,\n        tailLines: 100,\n        container: container\n      },\n      (chunk) => logs.push(chunk)\n    );\n    return logs;\n  }\n\n  public async getPodLogs(applicationName: string, podName: string) {\n    const logs: ApplicationLogEntry[] = [];\n    await this.client.getStream<ApplicationLogEntry>(\n      `/api/v1/applications/${applicationName}/pods/${podName}/logs`,\n      {\n        follow: false,\n        tailLines: 100\n      },\n      (chunk) => logs.push(chunk)\n    );\n    return logs;\n  }\n\n  public async getApplicationEvents(applicationName: string) {\n    const { body } = await this.client.get<V1EventList>(\n      `/api/v1/applications/${applicationName}/events`\n    );\n    return body;\n  }\n\n  public async getResource(\n    applicationName: string,\n    applicationNamespace: string,\n    resourceRef: V1alpha1ResourceResult\n  ) {\n    const { body } = await this.client.get<V1alpha1ApplicationResourceResult>(\n      `/api/v1/applications/${applicationName}/resource`,\n      {\n        appNamespace: applicationNamespace,\n        namespace: resourceRef.namespace,\n        resourceName: resourceRef.name,\n        group: resourceRef.group,\n        kind: resourceRef.kind,\n        version: resourceRef.version\n      }\n    );\n    return body.manifest;\n  }\n\n  public async getResourceEvents(\n    applicationName: string,\n    applicationNamespace: string,\n    resourceUID: string,\n    resourceNamespace: string,\n    resourceName: string\n  ) {\n    const { body } = await this.client.get<V1EventList>(\n      `/api/v1/applications/${applicationName}/events`,\n      {\n        appNamespace: applicationNamespace,\n        resourceNamespace,\n        resourceUID,\n        resourceName\n      }\n    );\n    return body;\n  }\n\n  public async getResourceActions(\n    applicationName: string,\n    applicationNamespace: string,\n    resourceRef: V1alpha1ResourceResult\n  ) {\n    const { body } = await this.client.get<{ actions: V1alpha1ResourceAction[] }>(\n      `/api/v1/applications/${applicationName}/resource/actions`,\n      {\n        appNamespace: applicationNamespace,\n        namespace: resourceRef.namespace,\n        resourceName: resourceRef.name,\n        group: resourceRef.group,\n        kind: resourceRef.kind,\n        version: resourceRef.version\n      }\n    );\n    return body;\n  }\n\n  public async runResourceAction(\n    applicationName: string,\n    applicationNamespace: string,\n    resourceRef: V1alpha1ResourceResult,\n    action: string\n  ) {\n    const { body } = await this.client.post<string, V1alpha1Application>(\n      `/api/v1/applications/${applicationName}/resource/actions`,\n      {\n        appNamespace: applicationNamespace,\n        namespace: resourceRef.namespace,\n        resourceName: resourceRef.name,\n        group: resourceRef.group,\n        kind: resourceRef.kind,\n        version: resourceRef.version\n      },\n      action\n    );\n    return body;\n  }\n}\n","import { z } from 'zod';\n\nexport const ApplicationNamespaceSchema = z\n  .string()\n  .min(1)\n  .describe(\n    `The namespace where the ArgoCD application resource will be created.\n     This is the namespace of the Application resource itself, not the destination namespace for the application's resources.\n     You can specify any valid Kubernetes namespace (e.g., 'argocd', 'argocd-apps', 'my-namespace', etc.).\n     The default ArgoCD namespace is typically 'argocd', but you can use any namespace you prefer.`\n  );\n\nexport const ResourceRefSchema = z.object({\n  uid: z.string(),\n  kind: z.string(),\n  namespace: z.string(),\n  name: z.string(),\n  version: z.string(),\n  group: z.string()\n});\n\nexport const ApplicationSchema = z.object({\n  metadata: z.object({\n    name: z.string(),\n    namespace: ApplicationNamespaceSchema\n  }),\n  spec: z.object({\n    project: z.string(),\n    source: z.object({\n      repoURL: z.string(),\n      path: z.string(),\n      targetRevision: z.string()\n    }),\n    syncPolicy: z.object({\n      syncOptions: z.array(z.string()),\n      automated: z.object({\n        prune: z.boolean(),\n        selfHeal: z.boolean()\n      }).optional(),\n      retry: z\n        .object({\n          limit: z.number(),\n          backoff: z.object({\n            duration: z.string(),\n            maxDuration: z.string(),\n            factor: z.number()\n          })\n        })\n    }),\n    destination: z.object({\n      server: z.string().optional(),\n      namespace: z.string().optional(),\n      name: z.string().optional()\n    })\n      .refine(\n        (data: { server?: string; name?: string }) =>\n          (!data.server && !!data.name) || (!!data.server && !data.name),\n        {\n          message: \"Only one of server or name must be specified in destination\"\n        }\n      )\n      .describe(\n        `The destination of the application.\n         Only one of server or name must be specified.`\n      )\n  })\n});\n","import { cmd } from './cmd/cmd.js';\nimport dotenv from 'dotenv';\n\ndotenv.config();\ncmd();"],"mappings":"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","names":["_a","_b","_c","_d","z","z","_a","yargs"]}
Report false positive
mediumEN-001unknownMedium ConfidenceLine 0

High-entropy string (4.6 bits/char) — possible encoded payload

Detected by automated pattern matching (rule EN-001) with medium confidence. May be a false positive.

Report false positive
mediumEN-001unknownMedium ConfidenceLine 0

High-entropy string (4.8 bits/char) — possible encoded payload

Detected by automated pattern matching (rule EN-001) with medium confidence. May be a false positive.

Report false positive
mediumEN-001unknownMedium ConfidenceLine 0

High-entropy string (4.6 bits/char) — possible encoded payload

Detected by automated pattern matching (rule EN-001) with medium confidence. May be a false positive.

Report false positive
mediumEN-001unknownMedium ConfidenceLine 0

High-entropy string (4.8 bits/char) — possible encoded payload

Detected by automated pattern matching (rule EN-001) with medium confidence. May be a false positive.

Report false positive
mediumEN-001unknownMedium ConfidenceLine 0

High-entropy string (4.6 bits/char) — possible encoded payload

Detected by automated pattern matching (rule EN-001) with medium confidence. May be a false positive.

Report false positive
mediumNS-003Network SuspiciousMedium ConfidenceLine 0

JavaScript fetch() call

Detected by automated pattern matching (rule NS-003) with medium confidence. May be a false positive.

    150:         });
    151:       }
>>> 152:       const response = yield fetch(urlObject, __spreadProps(__spreadValues({}, init), {
    153:         headers: __spreadValues(__spreadValues({}, init == null ? void 0 : init.headers), this.headers)
    154:       }));
Report false positive

Scan History

DateRiskFindings
Feb 25, 2026critical130
Feb 23, 2026critical130
Feb 22, 2026critical130