@hopping-dev/hub 0.1.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/assets/hopping-skill/SKILL.md +221 -0
- package/dist/approval/manager.d.ts +60 -0
- package/dist/approval/manager.d.ts.map +1 -0
- package/dist/approval/manager.js +101 -0
- package/dist/approval/manager.js.map +1 -0
- package/dist/approval/session-memory.d.ts +37 -0
- package/dist/approval/session-memory.d.ts.map +1 -0
- package/dist/approval/session-memory.js +63 -0
- package/dist/approval/session-memory.js.map +1 -0
- package/dist/cli/config-writer.d.ts +57 -0
- package/dist/cli/config-writer.d.ts.map +1 -0
- package/dist/cli/config-writer.js +318 -0
- package/dist/cli/config-writer.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +82 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/path-resolver.d.ts +48 -0
- package/dist/cli/path-resolver.d.ts.map +1 -0
- package/dist/cli/path-resolver.js +212 -0
- package/dist/cli/path-resolver.js.map +1 -0
- package/dist/cli/setup.d.ts +10 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +268 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cloud/connector.d.ts +74 -0
- package/dist/cloud/connector.d.ts.map +1 -0
- package/dist/cloud/connector.js +524 -0
- package/dist/cloud/connector.js.map +1 -0
- package/dist/cloud/index.d.ts +3 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +6 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/config/manager.d.ts +76 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +296 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/dev-mode.d.ts +30 -0
- package/dist/dev-mode.d.ts.map +1 -0
- package/dist/dev-mode.js +53 -0
- package/dist/dev-mode.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +354 -0
- package/dist/index.js.map +1 -0
- package/dist/ipc/index.d.ts +12 -0
- package/dist/ipc/index.d.ts.map +1 -0
- package/dist/ipc/index.js +15 -0
- package/dist/ipc/index.js.map +1 -0
- package/dist/ipc/watcher.d.ts +226 -0
- package/dist/ipc/watcher.d.ts.map +1 -0
- package/dist/ipc/watcher.js +745 -0
- package/dist/ipc/watcher.js.map +1 -0
- package/dist/local/approval-dialog.d.ts +30 -0
- package/dist/local/approval-dialog.d.ts.map +1 -0
- package/dist/local/approval-dialog.js +214 -0
- package/dist/local/approval-dialog.js.map +1 -0
- package/dist/local/index.d.ts +8 -0
- package/dist/local/index.d.ts.map +1 -0
- package/dist/local/index.js +13 -0
- package/dist/local/index.js.map +1 -0
- package/dist/local/local-approval.d.ts +55 -0
- package/dist/local/local-approval.d.ts.map +1 -0
- package/dist/local/local-approval.js +125 -0
- package/dist/local/local-approval.js.map +1 -0
- package/dist/local/notifier.d.ts +19 -0
- package/dist/local/notifier.d.ts.map +1 -0
- package/dist/local/notifier.js +110 -0
- package/dist/local/notifier.js.map +1 -0
- package/dist/local/sanitize.d.ts +20 -0
- package/dist/local/sanitize.d.ts.map +1 -0
- package/dist/local/sanitize.js +28 -0
- package/dist/local/sanitize.js.map +1 -0
- package/dist/mcp/file-extractor.d.ts +11 -0
- package/dist/mcp/file-extractor.d.ts.map +1 -0
- package/dist/mcp/file-extractor.js +74 -0
- package/dist/mcp/file-extractor.js.map +1 -0
- package/dist/mcp/risk-level.d.ts +44 -0
- package/dist/mcp/risk-level.d.ts.map +1 -0
- package/dist/mcp/risk-level.js +127 -0
- package/dist/mcp/risk-level.js.map +1 -0
- package/dist/mcp/schemas.d.ts +83 -0
- package/dist/mcp/schemas.d.ts.map +1 -0
- package/dist/mcp/schemas.js +84 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp/summary.d.ts +11 -0
- package/dist/mcp/summary.d.ts.map +1 -0
- package/dist/mcp/summary.js +150 -0
- package/dist/mcp/summary.js.map +1 -0
- package/dist/mcp/tools.d.ts +45 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +1217 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/pairing/auto-pairing.d.ts +37 -0
- package/dist/pairing/auto-pairing.d.ts.map +1 -0
- package/dist/pairing/auto-pairing.js +144 -0
- package/dist/pairing/auto-pairing.js.map +1 -0
- package/dist/pairing/binding-poller.d.ts +26 -0
- package/dist/pairing/binding-poller.d.ts.map +1 -0
- package/dist/pairing/binding-poller.js +108 -0
- package/dist/pairing/binding-poller.js.map +1 -0
- package/dist/pairing/pairing-server.d.ts +14 -0
- package/dist/pairing/pairing-server.d.ts.map +1 -0
- package/dist/pairing/pairing-server.js +277 -0
- package/dist/pairing/pairing-server.js.map +1 -0
- package/dist/pairing/qr-display.d.ts +14 -0
- package/dist/pairing/qr-display.d.ts.map +1 -0
- package/dist/pairing/qr-display.js +40 -0
- package/dist/pairing/qr-display.js.map +1 -0
- package/dist/policy/engine.d.ts +31 -0
- package/dist/policy/engine.d.ts.map +1 -0
- package/dist/policy/engine.js +187 -0
- package/dist/policy/engine.js.map +1 -0
- package/dist/policy/store.d.ts +26 -0
- package/dist/policy/store.d.ts.map +1 -0
- package/dist/policy/store.js +70 -0
- package/dist/policy/store.js.map +1 -0
- package/dist/policy/system-policies.d.ts +15 -0
- package/dist/policy/system-policies.d.ts.map +1 -0
- package/dist/policy/system-policies.js +265 -0
- package/dist/policy/system-policies.js.map +1 -0
- package/dist/policy/tool-mapping.d.ts +45 -0
- package/dist/policy/tool-mapping.d.ts.map +1 -0
- package/dist/policy/tool-mapping.js +88 -0
- package/dist/policy/tool-mapping.js.map +1 -0
- package/dist/policy/tool-registry.json +85 -0
- package/dist/store/db.d.ts +17 -0
- package/dist/store/db.d.ts.map +1 -0
- package/dist/store/db.js +193 -0
- package/dist/store/db.js.map +1 -0
- package/dist/store/index.d.ts +4 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +7 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/metadata.d.ts +31 -0
- package/dist/store/metadata.d.ts.map +1 -0
- package/dist/store/metadata.js +178 -0
- package/dist/store/metadata.js.map +1 -0
- package/dist/store/operations.d.ts +26 -0
- package/dist/store/operations.d.ts.map +1 -0
- package/dist/store/operations.js +171 -0
- package/dist/store/operations.js.map +1 -0
- package/dist/utils/json.d.ts +7 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +33 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +58 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/open-browser.d.ts +8 -0
- package/dist/utils/open-browser.d.ts.map +1 -0
- package/dist/utils/open-browser.js +38 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/node_modules/@hopping/shared/dist/types.d.ts +649 -0
- package/node_modules/@hopping/shared/dist/types.js +48 -0
- package/node_modules/@hopping/shared/dist/types.js.map +1 -0
- package/node_modules/@hopping/shared/package.json +14 -0
- package/node_modules/@hopping/shared/tsconfig.json +16 -0
- package/node_modules/@hopping/shared/types.d.ts +650 -0
- package/node_modules/@hopping/shared/types.d.ts.map +1 -0
- package/node_modules/@hopping/shared/types.js +48 -0
- package/node_modules/@hopping/shared/types.js.map +1 -0
- package/node_modules/@hopping/shared/types.ts +895 -0
- package/package.json +52 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================
|
|
3
|
+
// Smart Summary Generator
|
|
4
|
+
// Produces human-readable, security-safe summaries
|
|
5
|
+
// Max 200 chars, English (technical content)
|
|
6
|
+
// ============================================
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.generateSummary = generateSummary;
|
|
9
|
+
const MAX_SUMMARY_LENGTH = 200;
|
|
10
|
+
/**
|
|
11
|
+
* Generate a human-readable summary from toolName + toolInput.
|
|
12
|
+
*
|
|
13
|
+
* Design principles:
|
|
14
|
+
* - Max 200 chars (fits push notifications)
|
|
15
|
+
* - English (technical content is inherently English)
|
|
16
|
+
* - No sensitive content leakage (passwords, tokens, secrets)
|
|
17
|
+
* - Graceful fallback for unknown tools
|
|
18
|
+
*/
|
|
19
|
+
function generateSummary(toolName, toolInput) {
|
|
20
|
+
let summary;
|
|
21
|
+
switch (toolName) {
|
|
22
|
+
case 'Bash':
|
|
23
|
+
summary = summarizeBash(toolInput);
|
|
24
|
+
break;
|
|
25
|
+
case 'Write':
|
|
26
|
+
summary = summarizeWrite(toolInput);
|
|
27
|
+
break;
|
|
28
|
+
case 'Edit':
|
|
29
|
+
summary = summarizeEdit(toolInput);
|
|
30
|
+
break;
|
|
31
|
+
case 'Read':
|
|
32
|
+
summary = summarizeRead(toolInput);
|
|
33
|
+
break;
|
|
34
|
+
case 'Glob':
|
|
35
|
+
summary = summarizeGlob(toolInput);
|
|
36
|
+
break;
|
|
37
|
+
case 'Grep':
|
|
38
|
+
summary = summarizeGrep(toolInput);
|
|
39
|
+
break;
|
|
40
|
+
case 'NotebookEdit':
|
|
41
|
+
summary = summarizeNotebookEdit(toolInput);
|
|
42
|
+
break;
|
|
43
|
+
default:
|
|
44
|
+
summary = summarizeGeneric(toolName, toolInput);
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
return truncate(summary, MAX_SUMMARY_LENGTH);
|
|
48
|
+
}
|
|
49
|
+
// ─── Tool-specific summarizers ─────────────────────────────────────────────
|
|
50
|
+
function summarizeBash(input) {
|
|
51
|
+
const command = typeof input['command'] === 'string' ? input['command'] : '';
|
|
52
|
+
if (!command)
|
|
53
|
+
return 'Execute shell command';
|
|
54
|
+
// Extract the base command (first word/executable)
|
|
55
|
+
const sanitized = sanitizeCommand(command);
|
|
56
|
+
const baseCmd = sanitized.split(/\s+/)[0] ?? '';
|
|
57
|
+
// Known dangerous commands get explicit labeling
|
|
58
|
+
if (/\brm\b/.test(sanitized) && /\s-[a-z]*r[a-z]*f/i.test(sanitized)) {
|
|
59
|
+
return `Delete files recursively: ${sanitized}`;
|
|
60
|
+
}
|
|
61
|
+
if (/\brm\b/.test(sanitized)) {
|
|
62
|
+
return `Delete files: ${sanitized}`;
|
|
63
|
+
}
|
|
64
|
+
if (/\bgit\s+push\b/.test(sanitized)) {
|
|
65
|
+
return `Git push: ${sanitized}`;
|
|
66
|
+
}
|
|
67
|
+
if (/\bgit\s+reset\b/.test(sanitized)) {
|
|
68
|
+
return `Git reset: ${sanitized}`;
|
|
69
|
+
}
|
|
70
|
+
if (/\bcurl\b|\bwget\b|\bfetch\b/.test(sanitized)) {
|
|
71
|
+
return `Network request: ${sanitized}`;
|
|
72
|
+
}
|
|
73
|
+
if (/\bdocker\b/.test(sanitized)) {
|
|
74
|
+
return `Docker command: ${sanitized}`;
|
|
75
|
+
}
|
|
76
|
+
if (/\bsudo\b/.test(sanitized)) {
|
|
77
|
+
return `Elevated command: ${sanitized}`;
|
|
78
|
+
}
|
|
79
|
+
if (/\bnpm\b|\bpnpm\b|\byarn\b/.test(sanitized)) {
|
|
80
|
+
return `Package manager: ${sanitized}`;
|
|
81
|
+
}
|
|
82
|
+
return `Run: ${baseCmd} — ${sanitized}`;
|
|
83
|
+
}
|
|
84
|
+
function summarizeWrite(input) {
|
|
85
|
+
const filePath = typeof input['file_path'] === 'string' ? input['file_path'] : '';
|
|
86
|
+
if (!filePath)
|
|
87
|
+
return 'Write file';
|
|
88
|
+
const fileName = filePath.split('/').pop() ?? filePath;
|
|
89
|
+
return `Write file: ${fileName} (${filePath})`;
|
|
90
|
+
}
|
|
91
|
+
function summarizeEdit(input) {
|
|
92
|
+
const filePath = typeof input['file_path'] === 'string' ? input['file_path'] : '';
|
|
93
|
+
if (!filePath)
|
|
94
|
+
return 'Edit file';
|
|
95
|
+
const fileName = filePath.split('/').pop() ?? filePath;
|
|
96
|
+
return `Edit file: ${fileName} (${filePath})`;
|
|
97
|
+
}
|
|
98
|
+
function summarizeRead(input) {
|
|
99
|
+
const filePath = typeof input['file_path'] === 'string' ? input['file_path'] : '';
|
|
100
|
+
if (!filePath)
|
|
101
|
+
return 'Read file';
|
|
102
|
+
const fileName = filePath.split('/').pop() ?? filePath;
|
|
103
|
+
return `Read file: ${fileName} (${filePath})`;
|
|
104
|
+
}
|
|
105
|
+
function summarizeGlob(input) {
|
|
106
|
+
const pattern = typeof input['pattern'] === 'string' ? input['pattern'] : '';
|
|
107
|
+
if (!pattern)
|
|
108
|
+
return 'Search files by pattern';
|
|
109
|
+
return `Search files: ${pattern}`;
|
|
110
|
+
}
|
|
111
|
+
function summarizeGrep(input) {
|
|
112
|
+
const pattern = typeof input['pattern'] === 'string' ? input['pattern'] : '';
|
|
113
|
+
if (!pattern)
|
|
114
|
+
return 'Search file contents';
|
|
115
|
+
return `Search content: "${pattern}"`;
|
|
116
|
+
}
|
|
117
|
+
function summarizeNotebookEdit(input) {
|
|
118
|
+
const path = typeof input['notebook_path'] === 'string' ? input['notebook_path'] : '';
|
|
119
|
+
if (!path)
|
|
120
|
+
return 'Edit Jupyter notebook';
|
|
121
|
+
const fileName = path.split('/').pop() ?? path;
|
|
122
|
+
return `Edit notebook: ${fileName}`;
|
|
123
|
+
}
|
|
124
|
+
function summarizeGeneric(toolName, input) {
|
|
125
|
+
const keys = Object.keys(input);
|
|
126
|
+
if (keys.length === 0)
|
|
127
|
+
return `Execute: ${toolName}`;
|
|
128
|
+
// Show first 2 parameter names for context
|
|
129
|
+
const paramHint = keys.slice(0, 2).join(', ');
|
|
130
|
+
return `Execute: ${toolName} (${paramHint})`;
|
|
131
|
+
}
|
|
132
|
+
// ─── Helpers ────────────────────────────────────────────────────────────────
|
|
133
|
+
/**
|
|
134
|
+
* Sanitize command string to prevent sensitive content leakage.
|
|
135
|
+
* Masks environment variable values, tokens, passwords in assignments.
|
|
136
|
+
*/
|
|
137
|
+
function sanitizeCommand(command) {
|
|
138
|
+
// Mask inline env var assignments with sensitive-looking values
|
|
139
|
+
// e.g., TOKEN=abc123 → TOKEN=***
|
|
140
|
+
let sanitized = command.replace(/\b([A-Z_]*(?:TOKEN|SECRET|PASSWORD|KEY|CREDENTIAL|AUTH)[A-Z_]*)=(\S+)/gi, '$1=***');
|
|
141
|
+
// Mask --password=, --token=, etc.
|
|
142
|
+
sanitized = sanitized.replace(/--(password|token|secret|key|credential|auth)=\S+/gi, '--$1=***');
|
|
143
|
+
return sanitized;
|
|
144
|
+
}
|
|
145
|
+
function truncate(text, maxLength) {
|
|
146
|
+
if (text.length <= maxLength)
|
|
147
|
+
return text;
|
|
148
|
+
return text.slice(0, maxLength - 3) + '...';
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/mcp/summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import type { AgentType, AskMode } from '@hopping/shared';
|
|
3
|
+
import type { LocalApprovalChannel } from '../local/local-approval';
|
|
4
|
+
import { PolicyEngine } from '../policy/engine';
|
|
5
|
+
import { ApprovalManager } from '../approval/manager';
|
|
6
|
+
import type { SessionMemory } from '../approval/session-memory';
|
|
7
|
+
import { Logger } from '../utils/logger';
|
|
8
|
+
import type { HubDatabase } from '../store';
|
|
9
|
+
import { CloudConnector } from '../cloud';
|
|
10
|
+
import type { ConfigManager } from '../config/manager';
|
|
11
|
+
/** 供測試用:重設 askMode(Hub 重啟模擬) */
|
|
12
|
+
export declare function _resetAskMode(): void;
|
|
13
|
+
/** 取得當前 askMode(供 IpcWatcher 及測試使用) */
|
|
14
|
+
export declare function getAskMode(): AskMode;
|
|
15
|
+
export type { CallToolResult };
|
|
16
|
+
export interface Tool {
|
|
17
|
+
name: string;
|
|
18
|
+
description: string;
|
|
19
|
+
inputSchema: {
|
|
20
|
+
type: 'object';
|
|
21
|
+
properties: Record<string, unknown>;
|
|
22
|
+
required?: string[];
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export type ToolHandler = (name: string, args: Record<string, unknown>) => Promise<CallToolResult>;
|
|
26
|
+
export interface ToolDependencies {
|
|
27
|
+
policyEngine: PolicyEngine;
|
|
28
|
+
approvalManager: ApprovalManager;
|
|
29
|
+
logger: Logger;
|
|
30
|
+
shouldIntercept: (toolName: string) => boolean;
|
|
31
|
+
startTime: number;
|
|
32
|
+
agentType?: AgentType;
|
|
33
|
+
agentId?: string;
|
|
34
|
+
store?: HubDatabase;
|
|
35
|
+
cloudConnector?: CloudConnector;
|
|
36
|
+
configManager?: ConfigManager;
|
|
37
|
+
cloudUrl?: string;
|
|
38
|
+
onCloudConnectorUpdate?: (connector: CloudConnector) => void;
|
|
39
|
+
localApprovalChannel?: LocalApprovalChannel;
|
|
40
|
+
isYoloMode?: () => boolean;
|
|
41
|
+
sessionMemory?: SessionMemory;
|
|
42
|
+
}
|
|
43
|
+
export declare function getToolDefinitions(): Tool[];
|
|
44
|
+
export declare function createToolHandler(deps: ToolDependencies): ToolHandler;
|
|
45
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EACV,SAAS,EAET,OAAO,EAqBR,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAWpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAQ1C,OAAO,KAAK,EAAE,aAAa,EAAyB,MAAM,mBAAmB,CAAC;AAwB9E,gCAAgC;AAChC,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,uCAAuC;AACvC,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAGD,YAAY,EAAE,cAAc,EAAE,CAAC;AAM/B,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAEnG,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAC;IAE7D,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAE5C,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAE3B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAMD,wBAAgB,kBAAkB,IAAI,IAAI,EAAE,CA6M3C;AA0ND,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,CAsCrE"}
|