@kakaopay-develop/agent-toolkit
Version:
KakaoPay Agent Toolkit
1 lines • 32 kB
Source Map (JSON)
{"version":3,"sources":["../src/modelcontextprotocol/toolkit.ts","../src/shared/configuration.ts","../src/shared/payment/demoPayment.ts","../src/shared/client.ts","../src/shared/payment/getPayment.ts","../src/shared/payment/readyPayment.ts","../src/shared/payment/approvePayment.ts","../src/shared/payment/cancelPayment.ts","../src/shared/subscription/requestSubscription.ts","../src/shared/subscription/inactiveSubscription.ts","../src/shared/subscription/getSubscription.ts","../src/shared/tools.ts","../src/shared/api.ts","../package.json"],"sourcesContent":["import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';\nimport { Configuration, isToolAllowed } from '../shared/configuration';\nimport KakaoPayAPI from '../shared/api';\nimport tools from '../shared/tools';\nimport { version } from '../../package.json';\n\nclass KakaoPayAgentToolkit extends McpServer {\n private _kakaopay: KakaoPayAPI;\n\n constructor({\n secretKey,\n configuration,\n }: {\n secretKey: string;\n configuration: Configuration;\n }) {\n super({\n name: 'KakaoPay',\n version: version,\n });\n\n this._kakaopay = new KakaoPayAPI(secretKey, configuration.context);\n\n const context = configuration.context || {};\n const filteredTools = tools(context).filter((tool) =>\n isToolAllowed(tool, configuration)\n );\n\n filteredTools.forEach((tool) => {\n this.tool(\n tool.method,\n tool.description,\n tool.parameters.shape,\n async (arg: any, _extra: RequestHandlerExtra<any, any>) => {\n const result = await this._kakaopay.run(tool.method, arg);\n return {\n content: [\n {\n type: 'text' as const,\n text: String(result),\n },\n ],\n };\n }\n );\n });\n }\n}\n\nexport default KakaoPayAgentToolkit;\n","export type Context = {\n cid?: string;\n};\n\nexport type Configuration = {\n actions: {\n [product: string]: { [action: string]: boolean };\n };\n context?: Context;\n};\n\nexport function isToolAllowed(\n tool: any,\n configuration: Configuration\n): boolean {\n if (!configuration.actions) {\n return true;\n }\n\n const toolActions = tool.actions;\n if (!toolActions) {\n return true;\n }\n\n for (const [product, actions] of Object.entries(\n toolActions as Record<string, any>\n )) {\n if (configuration.actions[product]) {\n for (const [action, allowed] of Object.entries(\n actions as Record<string, boolean>\n )) {\n if (allowed && configuration.actions[product][action]) {\n return true;\n }\n }\n }\n }\n\n return false;\n}\n","import { z } from 'zod';\nimport { KakaoPayClient } from '../api';\nimport type { Context } from '../configuration';\nimport type { Tool } from '../tools';\n\nimport { KAKAO_PAY_API_ENDPOINTS } from '../client';\nimport { ReadyPaymentSchema } from './readyPayment';\n\nexport const demoPaymentPrompt = (_context: Context = {}) => `\n이 도구는 카카오페이 데모 결제 링크를 생성합니다.\n\n필요한 인수:\n- item_name (string): 상품명\n- total_amount (number): 상품 총액\n- link_type (string): 링크 유형 (PC 또는 MOBILE)\n`;\n\nexport const demoPaymentParameters = (_context: Context = {}): z.AnyZodObject =>\n z.object({\n item_name: z\n .string()\n .default('테스트 상품명')\n .describe('상품명 (최대 100자)'),\n total_amount: z\n .number()\n .int()\n .positive()\n .default(1000)\n .describe('상품 총액'),\n link_type: z.enum(['PC', 'MOBILE']).default('PC').describe('링크 유형'),\n });\n\ntype ReadyPaymentType = z.infer<typeof ReadyPaymentSchema>;\n\n// 응답 타입 정의\ninterface PaymentReadyResponse {\n tid: string;\n next_redirect_pc_url: string;\n next_redirect_mobile_url: string;\n created_at: string;\n}\n\nexport const demoPayment = async (\n client: KakaoPayClient,\n context: Context,\n params: z.infer<ReturnType<typeof demoPaymentParameters>>\n) => {\n const apiParams: ReadyPaymentType = {\n partner_order_id: 'partner_order_id',\n partner_user_id: 'partner_user_id',\n item_name: params.item_name,\n quantity: 1,\n total_amount: params.total_amount,\n tax_free_amount: 0,\n approval_url: 'https://payment-demo.kakaopay.com/online/approval',\n cancel_url: 'https://payment-demo.kakaopay.com/online/cancel',\n fail_url: 'https://payment-demo.kakaopay.com/online/fail',\n };\n\n const response = await client.post(KAKAO_PAY_API_ENDPOINTS.PAYMENT_READY, {\n cid: context.cid,\n ...apiParams,\n });\n const responseData = response.data as PaymentReadyResponse;\n const link =\n params.link_type === 'PC'\n ? responseData.next_redirect_pc_url\n : responseData.next_redirect_mobile_url;\n return {\n demo_link: `${link}?kpayTid=${responseData.tid}`,\n tid: responseData.tid,\n };\n};\n\nconst tool = (context: Context): Tool => ({\n method: 'demo_payment',\n name: 'Demo Payment',\n description: demoPaymentPrompt(context),\n parameters: demoPaymentParameters(context),\n actions: {\n payment: {\n demo: true,\n },\n },\n execute: demoPayment,\n});\n\nexport default tool;\n","import axios, { AxiosInstance } from 'axios';\n\nexport class KakaoPayClient {\n private client: AxiosInstance;\n\n constructor(secretKey: string) {\n const baseURL = 'https://open-api.kakaopay.com';\n\n this.client = axios.create({\n baseURL: `${baseURL}`,\n headers: {\n Authorization: `SECRET_KEY ${secretKey}`,\n 'Content-Type': 'application/json',\n },\n });\n }\n\n async post<T>(\n url: string,\n data?: any\n ): Promise<import('axios').AxiosResponse<T>> {\n return await this.client.post<T>(url, data);\n }\n}\n\nexport const KAKAO_PAY_API_ENDPOINTS = {\n PAYMENT_READY: '/online/v1/payment/ready',\n PAYMENT_APPROVE: '/online/v1/payment/approve',\n PAYMENT_ORDER: '/online/v1/payment/order',\n PAYMENT_CANCEL: '/online/v1/payment/cancel',\n SUBSCRIPTION_REQUEST: '/online/v1/payment/subscription',\n SUBSCRIPTION_INACTIVE: '/online/v1/payment/manage/subscription/inactive',\n SUBSCRIPTION_GET: '/online/v1/payment/manage/subscription/status',\n} as const;\n","import { z } from 'zod';\nimport { KakaoPayClient } from '../api';\nimport type { Context } from '../configuration';\nimport type { Tool } from '../tools';\n\nimport { KAKAO_PAY_API_ENDPOINTS } from '../client';\n\nexport const getPaymentPrompt = (_context: Context = {}) => `\n이 도구는 카카오페이 주문 상태를 조회합니다.\n\n필요한 인수:\n- tid (string): 결제 고유번호\n`;\n\nexport const getPaymentParameters = (_context: Context = {}): z.AnyZodObject =>\n z.object({\n tid: z.string().describe('결제 고유번호'),\n });\n\nexport const getPayment = async (\n client: KakaoPayClient,\n context: Context,\n params: z.infer<ReturnType<typeof getPaymentParameters>>\n) => {\n const response = await client.post(KAKAO_PAY_API_ENDPOINTS.PAYMENT_ORDER, {\n cid: context.cid,\n ...params,\n });\n return response.data;\n};\n\nconst tool = (context: Context): Tool => ({\n method: 'get_payment',\n name: 'Get Payment',\n description: getPaymentPrompt(context),\n parameters: getPaymentParameters(context),\n actions: {\n payment: {\n get: true,\n },\n },\n execute: getPayment,\n});\n\nexport default tool;\n","import { z } from 'zod';\nimport { KAKAO_PAY_API_ENDPOINTS, KakaoPayClient } from '../client';\nimport type { Context } from '../configuration';\nimport type { Tool } from '../tools';\n\nexport const readyPaymentPrompt = (_context: Context = {}) => `\n이 도구는 카카오페이 결제를 준비합니다.\n\n필요한 인수:\n- partner_order_id (string): 가맹점 주문번호\n- partner_user_id (string): 가맹점 회원 ID\n- item_name (string): 상품명\n- quantity (number): 상품 수량\n- total_amount (number): 상품 총액\n- tax_free_amount (number): 상품 비과세 금액\n- approval_url (string): 결제 성공 시 redirect url\n- cancel_url (string): 결제 취소 시 redirect url\n- fail_url (string): 결제 실패 시 redirect url\n`;\n\nexport const ReadyPaymentSchema = z.object({\n partner_order_id: z.string().describe('가맹점 주문번호 (최대 100자)'),\n partner_user_id: z.string().describe('가맹점 회원 ID (최대 100자)'),\n item_name: z.string().describe('상품명 (최대 100자)'),\n quantity: z.number().int().positive().describe('상품 수량'),\n total_amount: z.number().int().positive().describe('상품 총액'),\n tax_free_amount: z.number().int().min(0).describe('상품 비과세 금액'),\n approval_url: z.string().url().describe('결제 성공 시 redirect url'),\n cancel_url: z.string().url().describe('결제 취소 시 redirect url'),\n fail_url: z.string().url().describe('결제 실패 시 redirect url'),\n});\n\nexport const readyPaymentParameters = (\n _context: Context = {}\n): z.AnyZodObject => ReadyPaymentSchema;\n\nexport const readyPayment = async (\n client: KakaoPayClient,\n context: Context,\n params: z.infer<ReturnType<typeof readyPaymentParameters>>\n) => {\n const response = await client.post(KAKAO_PAY_API_ENDPOINTS.PAYMENT_READY, {\n cid: context.cid,\n ...params,\n });\n return response.data;\n};\n\nconst tool = (context: Context): Tool => ({\n method: 'ready_payment',\n name: 'Ready Payment',\n description: readyPaymentPrompt(context),\n parameters: readyPaymentParameters(context),\n actions: {\n payment: {\n ready: true,\n },\n },\n execute: readyPayment,\n});\n\nexport default tool;\n","import { z } from 'zod';\nimport { KakaoPayClient } from '../api';\nimport type { Context } from '../configuration';\nimport type { Tool } from '../tools';\n\nimport { KAKAO_PAY_API_ENDPOINTS } from '../client';\n\nexport const approvePaymentPrompt = (_context: Context = {}) => `\n이 도구는 카카오페이 단건 결제를 승인합니다.\n\n필요한 인수:\n- tid (string): 결제 고유번호\n- partner_order_id (string): 가맹점 주문번호\n- partner_user_id (string): 가맹점 회원 ID\n- pg_token (string): 결제승인 요청을 인증하는 토큰\n`;\n\nexport const approvePaymentParameters = (\n _context: Context = {}\n): z.AnyZodObject =>\n z.object({\n tid: z.string().describe('결제 고유번호 (결제 준비에서 받은 tid)'),\n partner_order_id: z\n .string()\n .describe('가맹점 주문번호 (결제 준비 API 요청과 일치)'),\n partner_user_id: z\n .string()\n .describe('가맹점 회원 ID (결제 준비 API 요청과 일치)'),\n pg_token: z\n .string()\n .describe(\n '결제승인 요청을 인증하는 토큰 (결제 수단 선택 완료 후 리다이렉트에서 받음)'\n ),\n });\n\nexport const approvePayment = async (\n client: KakaoPayClient,\n context: Context,\n params: z.infer<ReturnType<typeof approvePaymentParameters>>\n) => {\n const response = await client.post(KAKAO_PAY_API_ENDPOINTS.PAYMENT_APPROVE, {\n cid: context.cid,\n ...params,\n });\n return response.data;\n};\n\nconst tool = (context: Context): Tool => ({\n method: 'approve_payment',\n name: 'Approve Payment',\n description: approvePaymentPrompt(context),\n parameters: approvePaymentParameters(context),\n actions: {\n payment: {\n approve: true,\n },\n },\n execute: approvePayment,\n});\n\nexport default tool;\n","import { z } from 'zod';\nimport { KakaoPayClient } from '../api';\nimport type { Context } from '../configuration';\nimport type { Tool } from '../tools';\n\nimport { KAKAO_PAY_API_ENDPOINTS } from '../client';\n\nexport const cancelPaymentPrompt = (_context: Context = {}) => `\n이 도구는 카카오페이 결제를 취소합니다.\n\n필요한 인수:\n- tid (string): 결제 고유번호\n- cancel_amount (number): 취소 금액\n- cancel_tax_free_amount (number): 취소 비과세 금액\n`;\n\nexport const cancelPaymentParameters = (\n _context: Context = {}\n): z.AnyZodObject =>\n z.object({\n tid: z.string().describe('결제 고유번호 (20자)'),\n cancel_amount: z.number().int().positive().describe('취소 금액'),\n cancel_tax_free_amount: z\n .number()\n .int()\n .min(0)\n .describe('취소 비과세 금액'),\n });\n\nexport const cancelPayment = async (\n client: KakaoPayClient,\n context: Context,\n params: z.infer<ReturnType<typeof cancelPaymentParameters>>\n) => {\n const response = await client.post(KAKAO_PAY_API_ENDPOINTS.PAYMENT_CANCEL, {\n cid: context.cid,\n ...params,\n });\n return response.data;\n};\n\nconst tool = (context: Context): Tool => ({\n method: 'cancel_payment',\n name: 'Cancel Payment',\n description: cancelPaymentPrompt(context),\n parameters: cancelPaymentParameters(context),\n actions: {\n payment: {\n cancel: true,\n },\n },\n execute: cancelPayment,\n});\n\nexport default tool;\n","import { z } from 'zod';\nimport { KakaoPayClient } from '../api';\nimport type { Context } from '../configuration';\nimport type { Tool } from '../tools';\n\nimport { KAKAO_PAY_API_ENDPOINTS } from '../client';\n\nexport const requestSubscriptionPrompt = (_context: Context = {}) => `\n이 도구는 카카오페이 정기 결제를 요청합니다.\n\n필요한 인수:\n- sid (string): 정기 결제 키\n- partner_order_id (string): 가맹점 주문번호\n- partner_user_id (string): 가맹점 회원 ID\n- item_name (string): 상품명\n- quantity (number): 상품 수량\n- total_amount (number): 상품 총액\n- tax_free_amount (number): 상품 비과세 금액\n`;\n\nexport const requestSubscriptionParameters = (\n _context: Context = {}\n): z.AnyZodObject =>\n z.object({\n sid: z.string().describe('정기 결제 키 (20자)'),\n partner_order_id: z.string().describe('가맹점 주문번호 (최대 100자)'),\n partner_user_id: z.string().describe('가맹점 회원 ID (최대 100자)'),\n item_name: z.string().describe('상품명 (최대 100자)'),\n quantity: z.number().int().positive().describe('상품 수량'),\n total_amount: z.number().int().positive().describe('상품 총액'),\n tax_free_amount: z.number().int().min(0).describe('상품 비과세 금액'),\n });\n\nexport const requestSubscription = async (\n client: KakaoPayClient,\n context: Context,\n params: z.infer<ReturnType<typeof requestSubscriptionParameters>>\n) => {\n const response = await client.post(\n KAKAO_PAY_API_ENDPOINTS.SUBSCRIPTION_REQUEST,\n { cid: context.cid, ...params }\n );\n return response.data;\n};\n\nconst tool = (context: Context): Tool => ({\n method: 'request_subscription',\n name: 'Request Subscription',\n description: requestSubscriptionPrompt(context),\n parameters: requestSubscriptionParameters(context),\n actions: {\n subscription: {\n request: true,\n },\n },\n execute: requestSubscription,\n});\n\nexport default tool;\n","import { z } from 'zod';\nimport { KakaoPayClient } from '../api';\nimport type { Context } from '../configuration';\nimport type { Tool } from '../tools';\n\nimport { KAKAO_PAY_API_ENDPOINTS } from '../client';\n\nexport const inactiveSubscriptionPrompt = (_context: Context = {}) => `\n이 도구는 카카오페이 정기 결제를 비활성화합니다.\n\n필요한 인수:\n- sid (string): 정기 결제 고유번호 \n`;\n\nexport const inactiveSubscriptionParameters = (\n _context: Context = {}\n): z.AnyZodObject =>\n z.object({\n sid: z.string().describe('정기 결제 고유번호 (20자)'),\n });\n\nexport const inactiveSubscription = async (\n client: KakaoPayClient,\n context: Context,\n params: z.infer<ReturnType<typeof inactiveSubscriptionParameters>>\n) => {\n const response = await client.post(\n KAKAO_PAY_API_ENDPOINTS.SUBSCRIPTION_INACTIVE,\n { cid: context.cid, ...params }\n );\n return response.data;\n};\n\nconst tool = (context: Context): Tool => ({\n method: 'inactive_subscription',\n name: 'Inactive Subscription',\n description: inactiveSubscriptionPrompt(context),\n parameters: inactiveSubscriptionParameters(context),\n actions: {\n subscription: {\n inactive: true,\n },\n },\n execute: inactiveSubscription,\n});\n\nexport default tool;\n","import { z } from 'zod';\nimport { KakaoPayClient } from '../api';\nimport type { Context } from '../configuration';\nimport type { Tool } from '../tools';\n\nimport { KAKAO_PAY_API_ENDPOINTS } from '../client';\n\nexport const getSubscriptionPrompt = (_context: Context = {}) => `\n이 도구는 카카오페이 정기 결제를 승인합니다.\n\n필요한 인수:\n- sid (string): 정기 결제 고유번호 \n`;\n\nexport const getSubscriptionParameters = (\n _context: Context = {}\n): z.AnyZodObject =>\n z.object({\n sid: z.string().describe('정기 결제 고유번호 (20자)'),\n });\n\nexport const getSubscription = async (\n client: KakaoPayClient,\n context: Context,\n params: z.infer<ReturnType<typeof getSubscriptionParameters>>\n) => {\n const response = await client.post(KAKAO_PAY_API_ENDPOINTS.SUBSCRIPTION_GET, {\n cid: context.cid,\n ...params,\n });\n return response.data;\n};\n\nconst tool = (context: Context): Tool => ({\n method: 'get_subscription',\n name: 'Get Subscription',\n description: getSubscriptionPrompt(context),\n parameters: getSubscriptionParameters(context),\n actions: {\n subscription: {\n get: true,\n },\n },\n execute: getSubscription,\n});\n\nexport default tool;\n","import { z } from 'zod';\nimport { KakaoPayClient } from './client';\nimport type { Context } from './configuration';\n\nimport demoPaymentTool from './payment/demoPayment';\nimport getPaymentTool from './payment/getPayment';\nimport readyPaymentTool from './payment/readyPayment';\nimport approvePaymentTool from './payment/approvePayment';\nimport cancelPaymentTool from './payment/cancelPayment';\nimport requestSubscriptionTool from './subscription/requestSubscription';\nimport inactiveSubscriptionTool from './subscription/inactiveSubscription';\nimport getSubscriptionTool from './subscription/getSubscription';\n\nexport type Tool = {\n method: string;\n name: string;\n description: string;\n parameters: z.ZodObject<any, any, any, any>;\n actions: {\n [key: string]: {\n [action: string]: boolean;\n };\n };\n execute: (\n _client: KakaoPayClient,\n _context: Context,\n _params: any\n ) => Promise<any>;\n};\n\nconst tools = (context: Context): Tool[] => [\n demoPaymentTool(context),\n getPaymentTool(context),\n readyPaymentTool(context),\n approvePaymentTool(context),\n cancelPaymentTool(context),\n requestSubscriptionTool(context),\n inactiveSubscriptionTool(context),\n getSubscriptionTool(context),\n];\n\nexport default tools;\n","import type { Context } from './configuration';\nimport tools, { Tool } from './tools';\nimport { KakaoPayClient } from './client';\n\nclass KakaoPayAPI {\n kakaoPayClient: KakaoPayClient;\n context: Context;\n tools: Tool[];\n\n constructor(secretKey: string, context?: Context) {\n this.context = context || {};\n this.kakaoPayClient = new KakaoPayClient(secretKey);\n this.tools = tools(this.context);\n }\n\n async run(method: string, arg: any): Promise<string> {\n try {\n const tool = this.tools.find((t) => t.method === method);\n if (!tool) {\n throw new Error(`Invalid MCP method: ${method}`);\n }\n\n const output = await tool.execute(this.kakaoPayClient, this.context, arg);\n return JSON.stringify(output);\n } catch (error: any) {\n if (error.response) {\n return JSON.stringify({\n error: { http_status: error.response.status, ...error.response.data },\n });\n }\n\n const errorMessage = error.message || 'Unknown error';\n return JSON.stringify({\n error: {\n error_message: errorMessage,\n },\n });\n }\n }\n}\n\nexport default KakaoPayAPI;\nexport { KakaoPayClient };\n","{\n \"name\": \"@kakaopay-develop/agent-toolkit\",\n \"version\": \"0.1.2\",\n \"description\": \"KakaoPay Agent Toolkit\",\n \"homepage\": \"https://github.com/kakaopay-develop/agent-toolkit\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/kakaopay-develop/agent-toolkit.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/kakaopay-develop/agent-toolkit/issues\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"test\": \"jest\",\n \"lint\": \"eslint \\\"./**/*.ts*\\\"\",\n \"prettier\": \"prettier './**/*.{js,ts,md,html,css}' --write\",\n \"prettier-check\": \"prettier './**/*.{js,ts,md,html,css}' --check\",\n \"clean\": \"rm -rf modelcontextprotocol ai-sdk openai langchain bedrock\",\n \"dev\": \"tsup --watch\"\n },\n \"exports\": {\n \"./modelcontextprotocol\": {\n \"types\": \"./modelcontextprotocol/index.d.ts\",\n \"require\": \"./modelcontextprotocol/index.js\",\n \"import\": \"./modelcontextprotocol/index.mjs\"\n },\n \"./ai-sdk\": {\n \"types\": \"./ai-sdk/index.d.ts\",\n \"require\": \"./ai-sdk/index.js\",\n \"import\": \"./ai-sdk/index.mjs\"\n },\n \"./openai\": {\n \"types\": \"./openai/index.d.ts\",\n \"require\": \"./openai/index.js\",\n \"import\": \"./openai/index.mjs\"\n },\n \"./langchain\": {\n \"types\": \"./langchain/index.d.ts\",\n \"require\": \"./langchain/index.js\",\n \"import\": \"./langchain/index.mjs\"\n },\n \"./bedrock\": {\n \"types\": \"./bedrock/index.d.ts\",\n \"require\": \"./bedrock/index.js\",\n \"import\": \"./bedrock/index.mjs\"\n }\n },\n \"dependencies\": {\n \"@langchain/core\": \"^0.3.6\",\n \"@modelcontextprotocol/sdk\": \"^1.6.1\",\n \"ai\": \"^4.3.16\",\n \"axios\": \"^1.6.7\",\n \"openai\": \"^5.8.2\",\n \"zod\": \"^3.22.4\",\n \"zod-to-json-schema\": \"^3.22.4\"\n },\n \"devDependencies\": {\n \"@eslint/compat\": \"^1.3.1\",\n \"@eslint/eslintrc\": \"^3.3.1\",\n \"@types/node\": \"^20.11.19\",\n \"@typescript-eslint/eslint-plugin\": \"^8.37.0\",\n \"@typescript-eslint/parser\": \"^8.37.0\",\n \"eslint\": \"^9.31.0\",\n \"eslint-config-prettier\": \"^10.1.8\",\n \"eslint-plugin-import\": \"^2.32.0\",\n \"eslint-plugin-prettier\": \"^5.5.3\",\n \"globals\": \"^16.3.0\",\n \"jest\": \"^29.7.0\",\n \"prettier\": \"^3.6.2\",\n \"ts-jest\": \"^29.1.2\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.3.3\"\n },\n \"keywords\": [\n \"kakaopay\",\n \"payment\",\n \"agent\",\n \"ai\",\n \"toolkit\",\n \"langchain\"\n ],\n \"author\": \"KakaoPay <kakaopay.developer@kakaopaycorp.com>\",\n \"license\": \"MIT\",\n \"files\": [\n \"modelcontextprotocol/**/*\",\n \"ai-sdk/**/*\",\n \"openai/**/*\",\n \"langchain/**/*\",\n \"bedrock/**/*\",\n \"LICENSE\",\n \"README.md\",\n \"package.json\"\n ]\n}\n"],"mappings":"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","names":["tool","z","z","tool","z","z","tool","z","z","tool","z","z","tool","z","z","tool","z","z","tool","z","z","tool","tool","tool"]}