albabot-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
Binary file
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,75 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
5
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
7
+ const search_js_1 = require("./tools/search.js");
8
+ const conversation_js_1 = require("./tools/conversation.js");
9
+ const job_js_1 = require("./tools/job.js");
10
+ const index_js_2 = require("./resources/index.js");
11
+ // MCP 서버 인스턴스 생성
12
+ const server = new index_js_1.Server({
13
+ name: "albabot-mcp",
14
+ version: "1.0.0",
15
+ }, {
16
+ capabilities: {
17
+ tools: {},
18
+ resources: {},
19
+ },
20
+ });
21
+ // 모든 도구 목록
22
+ const allTools = [...search_js_1.searchTools, ...conversation_js_1.conversationTools, ...job_js_1.jobTools];
23
+ // 도구 목록 요청 핸들러
24
+ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
25
+ return { tools: allTools };
26
+ });
27
+ // 도구 실행 요청 핸들러
28
+ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
29
+ const { name, arguments: args } = request.params;
30
+ try {
31
+ // 검색 도구
32
+ if (search_js_1.searchTools.some((t) => t.name === name)) {
33
+ return await (0, search_js_1.handleSearchTool)(name, args);
34
+ }
35
+ // 대화 도구
36
+ if (conversation_js_1.conversationTools.some((t) => t.name === name)) {
37
+ return await (0, conversation_js_1.handleConversationTool)(name, args);
38
+ }
39
+ // 작업 도구
40
+ if (job_js_1.jobTools.some((t) => t.name === name)) {
41
+ return await (0, job_js_1.handleJobTool)(name, args);
42
+ }
43
+ throw new Error(`Unknown tool: ${name}`);
44
+ }
45
+ catch (error) {
46
+ return {
47
+ content: [
48
+ {
49
+ type: "text",
50
+ text: JSON.stringify({
51
+ success: false,
52
+ error: error instanceof Error ? error.message : "Unknown error",
53
+ }),
54
+ },
55
+ ],
56
+ };
57
+ }
58
+ });
59
+ // 리소스 목록 요청 핸들러
60
+ server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => {
61
+ return { resources: index_js_2.resources };
62
+ });
63
+ // 리소스 읽기 요청 핸들러
64
+ server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) => {
65
+ const { uri } = request.params;
66
+ return await (0, index_js_2.handleResource)(uri);
67
+ });
68
+ // 서버 시작
69
+ async function main() {
70
+ const transport = new stdio_js_1.StdioServerTransport();
71
+ await server.connect(transport);
72
+ console.error("AlbaBot MCP server running on stdio");
73
+ }
74
+ main().catch(console.error);
75
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,wEAAmE;AACnE,wEAAiF;AACjF,iEAK4C;AAE5C,iDAAkE;AAClE,6DAAoF;AACpF,2CAAyD;AACzD,mDAAiE;AAEjE,iBAAiB;AACjB,MAAM,MAAM,GAAG,IAAI,iBAAM,CACrB;IACI,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,OAAO;CACnB,EACD;IACI,YAAY,EAAE;QACV,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;KAChB;CACJ,CACJ,CAAC;AAEF,WAAW;AACX,MAAM,QAAQ,GAAG,CAAC,GAAG,uBAAW,EAAE,GAAG,mCAAiB,EAAE,GAAG,iBAAQ,CAAC,CAAC;AAErE,eAAe;AACf,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE;IACxD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,eAAe;AACf,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACD,QAAQ;QACR,IAAI,uBAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC3C,OAAO,MAAM,IAAA,4BAAgB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;QAED,QAAQ;QACR,IAAI,mCAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACjD,OAAO,MAAM,IAAA,wCAAsB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;QAED,QAAQ;QACR,IAAI,iBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACxC,OAAO,MAAM,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAClE,CAAC;iBACL;aACJ;SACJ,CAAC;IACN,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gBAAgB;AAChB,MAAM,CAAC,iBAAiB,CAAC,qCAA0B,EAAE,KAAK,IAAI,EAAE;IAC5D,OAAO,EAAE,SAAS,EAAT,oBAAS,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,gBAAgB;AAChB,MAAM,CAAC,iBAAiB,CAAC,oCAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAClE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,OAAO,MAAM,IAAA,yBAAc,EAAC,GAAG,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,QAAQ;AACR,KAAK,UAAU,IAAI;IACf,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACzD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Resource } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const resources: Resource[];
3
+ export declare function handleResource(uri: string): Promise<{
4
+ contents: Array<{
5
+ uri: string;
6
+ mimeType: string;
7
+ text: string;
8
+ }>;
9
+ }>;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAG9D,eAAO,MAAM,SAAS,EAAE,QAAQ,EAa/B,CAAC;AAGF,wBAAsB,cAAc,CAChC,GAAG,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAsG/E"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resources = void 0;
4
+ exports.handleResource = handleResource;
5
+ // 리소스 정의
6
+ exports.resources = [
7
+ {
8
+ uri: "albabot://guide",
9
+ name: "알바봇 AI 에이전트 가이드",
10
+ description: "알바봇 MCP 서버 사용법 및 모범 사례",
11
+ mimeType: "text/plain",
12
+ },
13
+ {
14
+ uri: "albabot://skills",
15
+ name: "스킬 목록",
16
+ description: "사용 가능한 모든 스킬 목록",
17
+ mimeType: "application/json",
18
+ },
19
+ ];
20
+ // 리소스 핸들러
21
+ async function handleResource(uri) {
22
+ switch (uri) {
23
+ case "albabot://guide": {
24
+ const guide = `
25
+ # 알바봇 AI 에이전트 가이드
26
+
27
+ ## 소개
28
+ 알바봇은 AI 에이전트가 사람 또는 봇을 고용할 수 있는 플랫폼입니다.
29
+
30
+ ## 고용 방법
31
+
32
+ ### 1. 직접 대화 (Direct Conversation)
33
+ 특정 작업자를 찾아 직접 대화를 시작하는 방법입니다.
34
+
35
+ 1. search_workers로 작업자 검색
36
+ 2. start_conversation으로 대화 시작
37
+ 3. 조건 협의 후 작업 진행
38
+
39
+ ### 2. 작업 등록 (Post a Job)
40
+ 작업을 등록하고 지원을 받는 방법입니다.
41
+
42
+ 1. create_job으로 작업 등록
43
+ 2. get_applications로 지원서 확인
44
+ 3. accept_application으로 지원 수락
45
+
46
+ ## 모범 사례
47
+
48
+ ### 명확하게 요청하기
49
+ - 구체적인 작업 내용 작성
50
+ - 예상 소요 시간 명시
51
+ - 완료 기준 설명
52
+
53
+ ### 여유 시간 확보
54
+ - 긴급한 작업보다 충분한 시간 확보
55
+ - 예상치 못한 상황 대비
56
+
57
+ ### 에러 처리
58
+ - API 응답의 success 필드 확인
59
+ - Rate Limit 준수 (GET: 100/분, POST: 20/분)
60
+
61
+ ## 작업자 유형
62
+
63
+ ### 사람 (Human)
64
+ - 현장 방문 작업
65
+ - 대면 미팅
66
+ - 물리적 작업
67
+
68
+ ### 봇 (Bot)
69
+ - 데이터 수집/분석
70
+ - 문서 작성
71
+ - 자동화 작업
72
+ `;
73
+ return {
74
+ contents: [
75
+ {
76
+ uri,
77
+ mimeType: "text/plain",
78
+ text: guide,
79
+ },
80
+ ],
81
+ };
82
+ }
83
+ case "albabot://skills": {
84
+ const skills = {
85
+ human: [
86
+ "배송",
87
+ "서류수령",
88
+ "현장방문",
89
+ "대면미팅",
90
+ "촬영",
91
+ "가이드",
92
+ "통역",
93
+ "설치",
94
+ "수리",
95
+ ],
96
+ bot: [
97
+ "데이터수집",
98
+ "문서작성",
99
+ "번역",
100
+ "고객응대",
101
+ "일정관리",
102
+ "SNS자동화",
103
+ "리서치",
104
+ "분석",
105
+ ],
106
+ };
107
+ return {
108
+ contents: [
109
+ {
110
+ uri,
111
+ mimeType: "application/json",
112
+ text: JSON.stringify(skills, null, 2),
113
+ },
114
+ ],
115
+ };
116
+ }
117
+ default:
118
+ throw new Error(`Unknown resource: ${uri}`);
119
+ }
120
+ }
121
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":";;;AAmBA,wCAwGC;AAzHD,SAAS;AACI,QAAA,SAAS,GAAe;IACjC;QACI,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,YAAY;KACzB;IACD;QACI,GAAG,EAAE,kBAAkB;QACvB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,kBAAkB;KAC/B;CACJ,CAAC;AAEF,UAAU;AACH,KAAK,UAAU,cAAc,CAChC,GAAW;IAEX,QAAQ,GAAG,EAAE,CAAC;QACV,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACrB,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDzB,CAAC;YACU,OAAO;gBACH,QAAQ,EAAE;oBACN;wBACI,GAAG;wBACH,QAAQ,EAAE,YAAY;wBACtB,IAAI,EAAE,KAAK;qBACd;iBACJ;aACJ,CAAC;QACN,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACtB,MAAM,MAAM,GAAG;gBACX,KAAK,EAAE;oBACH,IAAI;oBACJ,MAAM;oBACN,MAAM;oBACN,MAAM;oBACN,IAAI;oBACJ,KAAK;oBACL,IAAI;oBACJ,IAAI;oBACJ,IAAI;iBACP;gBACD,GAAG,EAAE;oBACD,OAAO;oBACP,MAAM;oBACN,IAAI;oBACJ,MAAM;oBACN,MAAM;oBACN,QAAQ;oBACR,KAAK;oBACL,IAAI;iBACP;aACJ,CAAC;YAEF,OAAO;gBACH,QAAQ,EAAE;oBACN;wBACI,GAAG;wBACH,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBACxC;iBACJ;aACJ,CAAC;QACN,CAAC;QAED;YACI,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC;AACL,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const conversationTools: Tool[];
3
+ export declare function handleConversationTool(name: string, args: Record<string, unknown> | undefined): Promise<{
4
+ content: Array<{
5
+ type: string;
6
+ text: string;
7
+ }>;
8
+ }>;
9
+ //# sourceMappingURL=conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/tools/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAwB1D,eAAO,MAAM,iBAAiB,EAAE,IAAI,EAyEnC,CAAC;AAGF,wBAAsB,sBAAsB,CACxC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA2I7D"}
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.conversationTools = void 0;
4
+ exports.handleConversationTool = handleConversationTool;
5
+ // Mock 대화 데이터
6
+ const mockConversations = new Map();
7
+ let conversationCounter = 0;
8
+ let messageCounter = 0;
9
+ // 대화 도구 정의
10
+ exports.conversationTools = [
11
+ {
12
+ name: "start_conversation",
13
+ description: "작업자와 새 대화 시작",
14
+ inputSchema: {
15
+ type: "object",
16
+ properties: {
17
+ workerId: {
18
+ type: "string",
19
+ description: "작업자 ID",
20
+ },
21
+ agentType: {
22
+ type: "string",
23
+ description: "에이전트 유형 (예: claude, gpt-4, custom-bot)",
24
+ },
25
+ subject: {
26
+ type: "string",
27
+ description: "대화 주제",
28
+ },
29
+ message: {
30
+ type: "string",
31
+ description: "첫 메시지 내용",
32
+ },
33
+ },
34
+ required: ["workerId", "subject", "message"],
35
+ },
36
+ },
37
+ {
38
+ name: "send_message",
39
+ description: "대화에 메시지 전송",
40
+ inputSchema: {
41
+ type: "object",
42
+ properties: {
43
+ conversationId: {
44
+ type: "string",
45
+ description: "대화 ID",
46
+ },
47
+ message: {
48
+ type: "string",
49
+ description: "메시지 내용",
50
+ },
51
+ },
52
+ required: ["conversationId", "message"],
53
+ },
54
+ },
55
+ {
56
+ name: "get_conversation",
57
+ description: "대화 내역 조회",
58
+ inputSchema: {
59
+ type: "object",
60
+ properties: {
61
+ conversationId: {
62
+ type: "string",
63
+ description: "대화 ID",
64
+ },
65
+ },
66
+ required: ["conversationId"],
67
+ },
68
+ },
69
+ {
70
+ name: "list_conversations",
71
+ description: "전체 대화 목록 조회",
72
+ inputSchema: {
73
+ type: "object",
74
+ properties: {
75
+ limit: {
76
+ type: "number",
77
+ description: "결과 개수 제한",
78
+ default: 20,
79
+ },
80
+ },
81
+ },
82
+ },
83
+ ];
84
+ // 대화 도구 핸들러
85
+ async function handleConversationTool(name, args) {
86
+ switch (name) {
87
+ case "start_conversation": {
88
+ const conversationId = `conv_${++conversationCounter}`;
89
+ const messageId = `msg_${++messageCounter}`;
90
+ const now = new Date().toISOString();
91
+ const conversation = {
92
+ id: conversationId,
93
+ workerId: args?.workerId,
94
+ agentType: args?.agentType || "unknown",
95
+ subject: args?.subject,
96
+ messages: [
97
+ {
98
+ id: messageId,
99
+ sender: "agent",
100
+ content: args?.message,
101
+ timestamp: now,
102
+ },
103
+ ],
104
+ createdAt: now,
105
+ };
106
+ mockConversations.set(conversationId, conversation);
107
+ return {
108
+ content: [
109
+ {
110
+ type: "text",
111
+ text: JSON.stringify({
112
+ success: true,
113
+ conversationId,
114
+ message: "대화가 시작되었습니다.",
115
+ }),
116
+ },
117
+ ],
118
+ };
119
+ }
120
+ case "send_message": {
121
+ const conversationId = args?.conversationId;
122
+ const conversation = mockConversations.get(conversationId);
123
+ if (!conversation) {
124
+ return {
125
+ content: [
126
+ {
127
+ type: "text",
128
+ text: JSON.stringify({
129
+ success: false,
130
+ error: "Conversation not found",
131
+ }),
132
+ },
133
+ ],
134
+ };
135
+ }
136
+ const messageId = `msg_${++messageCounter}`;
137
+ conversation.messages.push({
138
+ id: messageId,
139
+ sender: "agent",
140
+ content: args?.message,
141
+ timestamp: new Date().toISOString(),
142
+ });
143
+ return {
144
+ content: [
145
+ {
146
+ type: "text",
147
+ text: JSON.stringify({
148
+ success: true,
149
+ messageId,
150
+ message: "메시지가 전송되었습니다.",
151
+ }),
152
+ },
153
+ ],
154
+ };
155
+ }
156
+ case "get_conversation": {
157
+ const conversationId = args?.conversationId;
158
+ const conversation = mockConversations.get(conversationId);
159
+ if (!conversation) {
160
+ return {
161
+ content: [
162
+ {
163
+ type: "text",
164
+ text: JSON.stringify({
165
+ success: false,
166
+ error: "Conversation not found",
167
+ }),
168
+ },
169
+ ],
170
+ };
171
+ }
172
+ return {
173
+ content: [
174
+ {
175
+ type: "text",
176
+ text: JSON.stringify({
177
+ success: true,
178
+ conversation,
179
+ }),
180
+ },
181
+ ],
182
+ };
183
+ }
184
+ case "list_conversations": {
185
+ const limit = args?.limit || 20;
186
+ const conversations = Array.from(mockConversations.values())
187
+ .slice(0, limit)
188
+ .map((c) => ({
189
+ id: c.id,
190
+ workerId: c.workerId,
191
+ subject: c.subject,
192
+ messageCount: c.messages.length,
193
+ createdAt: c.createdAt,
194
+ }));
195
+ return {
196
+ content: [
197
+ {
198
+ type: "text",
199
+ text: JSON.stringify({
200
+ success: true,
201
+ conversations,
202
+ count: conversations.length,
203
+ }),
204
+ },
205
+ ],
206
+ };
207
+ }
208
+ default:
209
+ throw new Error(`Unknown conversation tool: ${name}`);
210
+ }
211
+ }
212
+ //# sourceMappingURL=conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/tools/conversation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const jobTools: Tool[];
3
+ export declare function handleJobTool(name: string, args: Record<string, unknown> | undefined): Promise<{
4
+ content: Array<{
5
+ type: string;
6
+ text: string;
7
+ }>;
8
+ }>;
9
+ //# sourceMappingURL=job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../src/tools/job.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAkC1D,eAAO,MAAM,QAAQ,EAAE,IAAI,EAkJ1B,CAAC;AAGF,wBAAsB,aAAa,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAwO7D"}