reskill 1.16.0-beta.1 → 1.17.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 +56 -17
- package/README.zh-CN.md +60 -18
- package/dist/cli/commands/group.d.ts +20 -0
- package/dist/cli/commands/group.d.ts.map +1 -0
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/publish.d.ts.map +1 -1
- package/dist/cli/index.js +1564 -965
- package/dist/core/content-scanner.d.ts.map +1 -1
- package/dist/core/registry-client.d.ts +75 -1
- package/dist/core/registry-client.d.ts.map +1 -1
- package/dist/core/skill-manager.d.ts +1 -1
- package/dist/core/skill-manager.d.ts.map +1 -1
- package/dist/index.js +188 -5
- package/dist/scanner.js +1 -0
- package/dist/types/index.d.ts +27 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/group-path.d.ts +40 -0
- package/dist/utils/group-path.d.ts.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -46,41 +46,67 @@ npx reskill@latest <command> # Or use npx directly
|
|
|
46
46
|
| Command | Alias | Description |
|
|
47
47
|
| --------------------- | -------------------- | ----------------------------------------- |
|
|
48
48
|
| `init` | - | Initialize `skills.json` |
|
|
49
|
-
| `find <query>` |
|
|
49
|
+
| `find <query>` | `search` | Search for skills in the registry |
|
|
50
50
|
| `install [skills...]` | `i` | Install one or more skills |
|
|
51
51
|
| `list` | `ls` | List installed skills |
|
|
52
52
|
| `info <skill>` | - | Show skill details |
|
|
53
53
|
| `update [skill]` | `up` | Update skills |
|
|
54
54
|
| `outdated` | - | Check for outdated skills |
|
|
55
55
|
| `uninstall <skill>` | `un`, `rm`, `remove` | Remove a skill |
|
|
56
|
+
| `group` | - | Manage skill groups ¹ |
|
|
56
57
|
| `publish [path]` | `pub` | Publish a skill to the registry ¹ |
|
|
57
58
|
| `login` | - | Authenticate with the registry ¹ |
|
|
58
59
|
| `logout` | - | Remove stored authentication ¹ |
|
|
59
60
|
| `whoami` | - | Display current logged in user ¹ |
|
|
60
61
|
| `doctor` | - | Diagnose environment and check for issues |
|
|
61
|
-
| `completion
|
|
62
|
+
| `completion [action]` | - | Setup or remove shell tab completion |
|
|
62
63
|
|
|
63
|
-
> ¹ Registry commands (`publish`, `login`, `logout`, `whoami`) require a private registry deployment. Not available for public use yet.
|
|
64
|
+
> ¹ Registry commands (`group`, `publish`, `login`, `logout`, `whoami`) require a private registry deployment. Not available for public use yet.
|
|
64
65
|
|
|
65
66
|
### Common Options
|
|
66
67
|
|
|
67
|
-
| Option | Commands
|
|
68
|
-
| ------------------------- |
|
|
69
|
-
| `--no-save` | `install`
|
|
70
|
-
| `-g, --global` | `install`, `uninstall`, `list`
|
|
71
|
-
| `-a, --agent <agents...>` | `install`
|
|
72
|
-
| `--mode <mode>` | `install`
|
|
73
|
-
| `--all` | `install`
|
|
74
|
-
| `-y, --yes` | `install`, `uninstall`, `publish`
|
|
75
|
-
| `-f, --force` | `install`
|
|
76
|
-
| `-s, --skill <names...>` | `install`
|
|
77
|
-
| `--list` | `install`
|
|
78
|
-
| `-
|
|
79
|
-
| `-
|
|
80
|
-
| `-j, --json` | `list`, `info`, `outdated`, `doctor` | Output as JSON |
|
|
68
|
+
| Option | Commands | Description |
|
|
69
|
+
| ------------------------- | --------------------------------------------- | ------------------------------------------------------------- |
|
|
70
|
+
| `--no-save` | `install` | Install without saving to `skills.json` (for personal skills) |
|
|
71
|
+
| `-g, --global` | `install`, `uninstall`, `list` | Install/manage skills globally (user directory) |
|
|
72
|
+
| `-a, --agent <agents...>` | `install` | Specify target agents (e.g., `cursor`, `claude-code`) |
|
|
73
|
+
| `--mode <mode>` | `install` | Installation mode: `symlink` (default) or `copy` |
|
|
74
|
+
| `--all` | `install` | Install to all agents |
|
|
75
|
+
| `-y, --yes` | `install`, `uninstall`, `publish` | Skip confirmation prompts |
|
|
76
|
+
| `-f, --force` | `install` | Force reinstall even if already installed |
|
|
77
|
+
| `-s, --skill <names...>` | `install` | Select specific skill(s) by name from a multi-skill repo |
|
|
78
|
+
| `--list` | `install` | List available skills in the repository without installing |
|
|
79
|
+
| `-t, --token <token>` | `install` | Auth token for registry API requests (for CI/CD) |
|
|
80
|
+
| `-r, --registry <url>` | `install`, `group`, `publish` | Registry URL override for registry-enabled commands |
|
|
81
|
+
| `-j, --json` | `list`, `info`, `outdated`, `doctor`, `group` | Output as JSON |
|
|
82
|
+
| `-l, --limit <n>` | `find` | Maximum number of search results |
|
|
83
|
+
| `--skip-network` | `doctor` | Skip network connectivity checks |
|
|
81
84
|
|
|
82
85
|
Run `reskill <command> --help` for complete options and detailed usage.
|
|
83
86
|
|
|
87
|
+
### Group Command Quick Reference
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# List groups
|
|
91
|
+
reskill group list
|
|
92
|
+
reskill group list --tree
|
|
93
|
+
|
|
94
|
+
# Create / inspect / delete groups
|
|
95
|
+
reskill group create "Frontend Team" --description "Frontend skills"
|
|
96
|
+
reskill group info kanyun/frontend
|
|
97
|
+
reskill group delete kanyun/frontend --dry-run
|
|
98
|
+
reskill group delete kanyun/frontend -y
|
|
99
|
+
|
|
100
|
+
# Manage members
|
|
101
|
+
reskill group member list kanyun/frontend
|
|
102
|
+
reskill group member add kanyun/frontend alice bob --role developer
|
|
103
|
+
reskill group member remove kanyun/frontend alice
|
|
104
|
+
reskill group member role kanyun/frontend bob maintainer
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
`publish --group <path>` normalizes and validates the path before request.
|
|
108
|
+
For full group path rules, see [CLI Specification - group](./docs/cli-spec.md#group).
|
|
109
|
+
|
|
84
110
|
## Source Formats
|
|
85
111
|
|
|
86
112
|
```bash
|
|
@@ -212,6 +238,13 @@ Skills are installed to `.skills/` by default and can be integrated with any age
|
|
|
212
238
|
Publish your skills to the registry for others to use:
|
|
213
239
|
|
|
214
240
|
```bash
|
|
241
|
+
# Group management examples
|
|
242
|
+
reskill group list
|
|
243
|
+
reskill group list --tree
|
|
244
|
+
reskill group create "Frontend Team" --description "Frontend skills"
|
|
245
|
+
reskill group info kanyun/frontend
|
|
246
|
+
reskill group member add kanyun/frontend alice bob --role developer
|
|
247
|
+
|
|
215
248
|
# Interactive login (recommended for humans — guides you through token setup)
|
|
216
249
|
reskill login
|
|
217
250
|
|
|
@@ -221,6 +254,9 @@ reskill login --token <your-token>
|
|
|
221
254
|
# Validate without publishing (dry run)
|
|
222
255
|
reskill publish --dry-run
|
|
223
256
|
|
|
257
|
+
# Validate publish with target group
|
|
258
|
+
reskill publish --dry-run --group kanyun/frontend
|
|
259
|
+
|
|
224
260
|
# Publish the skill
|
|
225
261
|
reskill publish
|
|
226
262
|
```
|
|
@@ -250,8 +286,11 @@ reskill install @scope/private-skill --registry https://your-registry.com --toke
|
|
|
250
286
|
| `RESKILL_TOKEN` | Auth token (takes precedence over ~/.reskillrc) | - |
|
|
251
287
|
| `RESKILL_REGISTRY` | Default registry URL | `https://registry.reskill.dev` |
|
|
252
288
|
| `DEBUG` | Enable debug logging | - |
|
|
289
|
+
| `VERBOSE` | Enable debug logging (same effect as `DEBUG`) | - |
|
|
253
290
|
| `NO_COLOR` | Disable colored output | - |
|
|
254
291
|
|
|
292
|
+
reskill checks for newer versions in the background and shows an upgrade tip after command execution.
|
|
293
|
+
|
|
255
294
|
## Development
|
|
256
295
|
|
|
257
296
|
```bash
|
package/README.zh-CN.md
CHANGED
|
@@ -46,41 +46,67 @@ npx reskill@latest <command> # 或直接使用 npx
|
|
|
46
46
|
| 命令 | 别名 | 说明 |
|
|
47
47
|
| --------------------- | -------------------- | ------------------------- |
|
|
48
48
|
| `init` | - | 初始化 `skills.json` |
|
|
49
|
-
| `find <query>` |
|
|
49
|
+
| `find <query>` | `search` | 在 registry 中搜索 skills |
|
|
50
50
|
| `install [skills...]` | `i` | 安装一个或多个 skills |
|
|
51
51
|
| `list` | `ls` | 列出已安装的 skills |
|
|
52
52
|
| `info <skill>` | - | 查看 skill 详情 |
|
|
53
53
|
| `update [skill]` | `up` | 更新 skills |
|
|
54
54
|
| `outdated` | - | 检查过期的 skills |
|
|
55
55
|
| `uninstall <skill>` | `un`, `rm`, `remove` | 卸载 skill |
|
|
56
|
+
| `group` | - | 管理 skill 分组 ¹ |
|
|
56
57
|
| `publish [path]` | `pub` | 发布 skill 到 registry ¹ |
|
|
57
58
|
| `login` | - | 登录 registry ¹ |
|
|
58
59
|
| `logout` | - | 登出 registry ¹ |
|
|
59
60
|
| `whoami` | - | 显示当前登录用户 ¹ |
|
|
60
61
|
| `doctor` | - | 诊断环境并检查问题 |
|
|
61
|
-
| `completion
|
|
62
|
+
| `completion [action]` | - | 配置或移除 Shell Tab 补全 |
|
|
62
63
|
|
|
63
|
-
> ¹ Registry 相关命令(`publish`、`login`、`logout`、`whoami`)需要部署私有 registry 后才能使用,暂不对外开放。
|
|
64
|
+
> ¹ Registry 相关命令(`group`、`publish`、`login`、`logout`、`whoami`)需要部署私有 registry 后才能使用,暂不对外开放。
|
|
64
65
|
|
|
65
66
|
### 常用选项
|
|
66
67
|
|
|
67
|
-
| 选项 | 适用命令
|
|
68
|
-
| ------------------------- |
|
|
69
|
-
| `--no-save` | `install`
|
|
70
|
-
| `-g, --global` | `install`, `uninstall`, `list`
|
|
71
|
-
| `-a, --agent <agents...>` | `install`
|
|
72
|
-
| `--mode <mode>` | `install`
|
|
73
|
-
| `--all` | `install`
|
|
74
|
-
| `-y, --yes` | `install`, `uninstall`, `publish`
|
|
75
|
-
| `-f, --force` | `install`
|
|
76
|
-
| `-s, --skill <names...>` | `install`
|
|
77
|
-
| `--list` | `install`
|
|
78
|
-
| `-
|
|
79
|
-
| `-
|
|
80
|
-
| `-j, --json` | `list`, `info`, `outdated`, `doctor` | JSON 格式输出 |
|
|
68
|
+
| 选项 | 适用命令 | 说明 |
|
|
69
|
+
| ------------------------- | --------------------------------------------- | -------------------------------------------- |
|
|
70
|
+
| `--no-save` | `install` | 安装时不保存到 `skills.json`(用于个人技能) |
|
|
71
|
+
| `-g, --global` | `install`, `uninstall`, `list` | 全局安装/管理技能(用户目录) |
|
|
72
|
+
| `-a, --agent <agents...>` | `install` | 指定目标 Agent(如 `cursor`, `claude-code`) |
|
|
73
|
+
| `--mode <mode>` | `install` | 安装模式:`symlink`(默认)或 `copy` |
|
|
74
|
+
| `--all` | `install` | 安装到所有 Agent |
|
|
75
|
+
| `-y, --yes` | `install`, `uninstall`, `publish` | 跳过确认提示 |
|
|
76
|
+
| `-f, --force` | `install` | 强制重新安装 |
|
|
77
|
+
| `-s, --skill <names...>` | `install` | 从多 skill 仓库中选择指定 skill |
|
|
78
|
+
| `--list` | `install` | 列出仓库中可用的 skills(不安装) |
|
|
79
|
+
| `-t, --token <token>` | `install` | 认证令牌(用于 CI/CD 访问私有 skill) |
|
|
80
|
+
| `-r, --registry <url>` | `install`, `group`, `publish` | 覆盖 registry URL(用于 registry 相关命令) |
|
|
81
|
+
| `-j, --json` | `list`, `info`, `outdated`, `doctor`, `group` | JSON 格式输出 |
|
|
82
|
+
| `-l, --limit <n>` | `find` | 限制搜索结果数量 |
|
|
83
|
+
| `--skip-network` | `doctor` | 跳过网络连通性检查 |
|
|
81
84
|
|
|
82
85
|
运行 `reskill <command> --help` 查看完整选项和详细用法。
|
|
83
86
|
|
|
87
|
+
### Group 命令速查
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# 查看分组
|
|
91
|
+
reskill group list
|
|
92
|
+
reskill group list --tree
|
|
93
|
+
|
|
94
|
+
# 创建 / 查看 / 删除分组
|
|
95
|
+
reskill group create "Frontend Team" --description "Frontend skills"
|
|
96
|
+
reskill group info kanyun/frontend
|
|
97
|
+
reskill group delete kanyun/frontend --dry-run
|
|
98
|
+
reskill group delete kanyun/frontend -y
|
|
99
|
+
|
|
100
|
+
# 成员管理
|
|
101
|
+
reskill group member list kanyun/frontend
|
|
102
|
+
reskill group member add kanyun/frontend alice bob --role developer
|
|
103
|
+
reskill group member remove kanyun/frontend alice
|
|
104
|
+
reskill group member role kanyun/frontend bob maintainer
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
`publish --group <path>` 在请求前会先做路径归一化和校验。
|
|
108
|
+
完整规则见 [CLI 规范 - group](./docs/cli-spec.md#group)。
|
|
109
|
+
|
|
84
110
|
## 源格式
|
|
85
111
|
|
|
86
112
|
```bash
|
|
@@ -212,12 +238,25 @@ Skills 默认安装到 `.skills/`,可与任何 Agent 集成:
|
|
|
212
238
|
将你的 skills 发布到 registry 供他人使用:
|
|
213
239
|
|
|
214
240
|
```bash
|
|
215
|
-
#
|
|
241
|
+
# Group 管理示例
|
|
242
|
+
reskill group list
|
|
243
|
+
reskill group list --tree
|
|
244
|
+
reskill group create "Frontend Team" --description "Frontend skills"
|
|
245
|
+
reskill group info kanyun/frontend
|
|
246
|
+
reskill group member add kanyun/frontend alice bob --role developer
|
|
247
|
+
|
|
248
|
+
# 交互式登录(推荐日常使用)
|
|
216
249
|
reskill login
|
|
217
250
|
|
|
251
|
+
# 非交互式登录(CI/CD)
|
|
252
|
+
reskill login --token <your-token>
|
|
253
|
+
|
|
218
254
|
# 验证但不发布(预览模式)
|
|
219
255
|
reskill publish --dry-run
|
|
220
256
|
|
|
257
|
+
# 验证并指定目标分组
|
|
258
|
+
reskill publish --dry-run --group kanyun/frontend
|
|
259
|
+
|
|
221
260
|
# 发布 skill
|
|
222
261
|
reskill publish
|
|
223
262
|
```
|
|
@@ -247,8 +286,11 @@ reskill install @scope/private-skill --registry https://your-registry.com --toke
|
|
|
247
286
|
| `RESKILL_TOKEN` | 认证令牌(优先于 ~/.reskillrc) | - |
|
|
248
287
|
| `RESKILL_REGISTRY` | 默认 registry URL | `https://registry.reskill.dev` |
|
|
249
288
|
| `DEBUG` | 启用调试日志 | - |
|
|
289
|
+
| `VERBOSE` | 启用调试日志(与 `DEBUG` 等效) | - |
|
|
250
290
|
| `NO_COLOR` | 禁用彩色输出 | - |
|
|
251
291
|
|
|
292
|
+
reskill 会在后台检查新版本,并在命令执行后提示升级信息。
|
|
293
|
+
|
|
252
294
|
## 开发
|
|
253
295
|
|
|
254
296
|
```bash
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* group command - Manage skill groups
|
|
3
|
+
*
|
|
4
|
+
* Provides subcommands for listing, creating, inspecting, and deleting
|
|
5
|
+
* skill groups, as well as managing group membership.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* reskill group list # List visible groups
|
|
9
|
+
* reskill group create <name> # Create a group
|
|
10
|
+
* reskill group info <path> # Show group details
|
|
11
|
+
* reskill group delete <path> # Delete a group
|
|
12
|
+
* reskill group member list <path> # List members
|
|
13
|
+
* reskill group member add <path> <users...> # Add members
|
|
14
|
+
* reskill group member remove <path> <user> # Remove a member
|
|
15
|
+
* reskill group member role <path> <user> <role> # Change member role
|
|
16
|
+
*/
|
|
17
|
+
import { Command } from 'commander';
|
|
18
|
+
export declare const groupCommand: Command;
|
|
19
|
+
export default groupCommand;
|
|
20
|
+
//# sourceMappingURL=group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgfpC,eAAO,MAAM,YAAY,SAA0D,CAAC;AAqCpF,eAAe,YAAY,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { completionCommand, maybeHandleCompletion } from './completion.js';
|
|
2
2
|
export { doctorCommand } from './doctor.js';
|
|
3
3
|
export { findCommand } from './find.js';
|
|
4
|
+
export { groupCommand } from './group.js';
|
|
4
5
|
export { infoCommand } from './info.js';
|
|
5
6
|
export { initCommand } from './init.js';
|
|
6
7
|
export { installCommand } from './install.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsDpC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAcR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAYpE;AA2ND;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAI1D;AAoBD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAyBnE;AAkUD,eAAO,MAAM,cAAc,SAaH,CAAC;AAEzB,eAAe,cAAc,CAAC"}
|