artdam-cli 0.2.2__tar.gz → 0.2.3__tar.gz

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.
Files changed (36) hide show
  1. artdam_cli-0.2.3/PKG-INFO +289 -0
  2. artdam_cli-0.2.3/README.md +279 -0
  3. artdam_cli-0.2.3/artdam_cli/__init__.py +1 -0
  4. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/folder_cmd.py +4 -3
  5. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/folders.py +4 -3
  6. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/login.py +112 -112
  7. artdam_cli-0.2.3/artdam_cli/commands/project.py +28 -0
  8. artdam_cli-0.2.3/artdam_cli/commands/projects.py +41 -0
  9. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/search.py +4 -3
  10. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/tag_cmd.py +4 -3
  11. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/tags.py +4 -3
  12. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/upload.py +4 -3
  13. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/config.py +9 -0
  14. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/main.py +12 -0
  15. artdam_cli-0.2.3/artdam_cli.egg-info/PKG-INFO +289 -0
  16. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli.egg-info/SOURCES.txt +2 -0
  17. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/pyproject.toml +1 -1
  18. artdam_cli-0.2.2/PKG-INFO +0 -235
  19. artdam_cli-0.2.2/README.md +0 -225
  20. artdam_cli-0.2.2/artdam_cli/__init__.py +0 -1
  21. artdam_cli-0.2.2/artdam_cli.egg-info/PKG-INFO +0 -235
  22. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/client.py +0 -0
  23. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/__init__.py +0 -0
  24. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/comment.py +0 -0
  25. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/delete_cmd.py +0 -0
  26. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/download.py +0 -0
  27. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/favorite.py +0 -0
  28. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/get.py +0 -0
  29. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/rate.py +0 -0
  30. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/restore.py +0 -0
  31. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli/commands/update.py +0 -0
  32. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli.egg-info/dependency_links.txt +0 -0
  33. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli.egg-info/entry_points.txt +0 -0
  34. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli.egg-info/requires.txt +0 -0
  35. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/artdam_cli.egg-info/top_level.txt +0 -0
  36. {artdam_cli-0.2.2 → artdam_cli-0.2.3}/setup.cfg +0 -0
@@ -0,0 +1,289 @@
1
+ Metadata-Version: 2.4
2
+ Name: artdam-cli
3
+ Version: 0.2.3
4
+ Summary: ArtDAM 数字资产管理平台命令行工具
5
+ Requires-Python: >=3.10
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: click>=8.1
8
+ Requires-Dist: httpx>=0.27
9
+ Requires-Dist: rich>=13.0
10
+
11
+ # artdam-cli
12
+
13
+ ArtDAM 数字资产管理平台命令行工具,支持所有主流 AI Agent工具接入
14
+
15
+ ## 安装
16
+
17
+ ```bash
18
+ # 推荐(无需 Python 环境)
19
+ uv tool install artdam-cli
20
+
21
+ # 或使用 pip
22
+ pip install artdam-cli
23
+ ```
24
+
25
+ ## 快速开始
26
+
27
+ ```bash
28
+ # 登录(默认走 SSO,自动打开浏览器完成授权)
29
+ artdam login
30
+
31
+ # 用账号密码登录
32
+ artdam login --password --username <用户名>
33
+
34
+ # 查看可访问的项目列表(获取项目 ID)
35
+ artdam projects
36
+
37
+ # 设置默认项目(之后无需每次输入 -p)
38
+ artdam project use 1
39
+
40
+ # 搜索资产
41
+ artdam search "关键词"
42
+
43
+ # 查看资产详情
44
+ artdam get 123
45
+
46
+ # 下载资产
47
+ artdam download 123 --out ./downloads
48
+ ```
49
+
50
+ ## 命令说明
51
+
52
+ ### 查询命令(viewer 及以上)
53
+
54
+ #### `artdam projects`
55
+
56
+ 列出当前用户可访问的所有项目(含 ID)。
57
+
58
+ ```bash
59
+ artdam projects
60
+ artdam projects --json # 输出原始 JSON(AI Agent 用)
61
+ ```
62
+
63
+ #### `artdam project use / show`
64
+
65
+ 设置或查看默认项目,设置后所有命令无需再传 `-p`。
66
+
67
+ ```bash
68
+ artdam project use 1 # 设置默认项目 ID 为 1
69
+ artdam project show # 查看当前默认项目
70
+ ```
71
+
72
+ #### `artdam login`
73
+
74
+ 登录 ArtDAM,保存 token 到本地 `~/.artdam/config.json`。
75
+
76
+ **默认走 SSO 浏览器授权**(推荐):
77
+
78
+ ```bash
79
+ artdam login
80
+ # 自动打开浏览器 → 完成公司 SSO 授权 → token 写入本地配置
81
+ ```
82
+
83
+ **账号密码登录**(仅管理员 / 服务账号):
84
+
85
+ ```bash
86
+ artdam login --password --username <用户名>
87
+ # 回车后提示输入密码(不回显)
88
+ ```
89
+
90
+ | 参数 | 说明 |
91
+ |---|---|
92
+ | `--url` | 服务器地址(默认已内置,无需填写) |
93
+ | `--password` | 切换为账号密码模式(不加此 flag 默认走 SSO) |
94
+ | `--username` | 用户名(仅 `--password` 模式) |
95
+
96
+ #### `artdam search`
97
+
98
+ 搜索资产,返回匹配列表。
99
+
100
+ ```bash
101
+ artdam search "场景" # 使用默认项目
102
+ artdam search "场景" --project 1 # 临时指定项目
103
+ artdam search "场景" --limit 50
104
+ artdam search "场景" --type image/png
105
+ artdam search "场景" --folder 10
106
+ artdam search "场景" --json # 输出原始 JSON(AI Agent 用)
107
+ ```
108
+
109
+ | 参数 | 说明 |
110
+ |---|---|
111
+ | `KEYWORD` | 搜索关键词 |
112
+ | `-p, --project` | 项目 ID(省略则使用默认项目) |
113
+ | `-n, --limit` | 返回数量上限(默认 20) |
114
+ | `--type` | 文件类型,如 `image/png` |
115
+ | `--folder` | 限定文件夹 ID |
116
+ | `--json` | 输出原始 JSON |
117
+
118
+ #### `artdam get`
119
+
120
+ 查看单个资产详情(含预览链接)。
121
+
122
+ ```bash
123
+ artdam get 123
124
+ artdam get 123 --json # 输出原始 JSON(AI Agent 用)
125
+ ```
126
+
127
+ #### `artdam download`
128
+
129
+ 下载资产文件到本地。
130
+
131
+ ```bash
132
+ artdam download 123
133
+ artdam download 123 --out ./downloads
134
+ ```
135
+
136
+ #### `artdam tags`
137
+
138
+ 列出项目标签。
139
+
140
+ ```bash
141
+ artdam tags # 使用默认项目
142
+ artdam tags --search "角色"
143
+ artdam tags --json
144
+ ```
145
+
146
+ #### `artdam folders`
147
+
148
+ 查看文件夹结构。
149
+
150
+ ```bash
151
+ artdam folders # 使用默认项目
152
+ artdam folders --json
153
+ ```
154
+
155
+ ### 资产管理(member 及以上)
156
+
157
+ #### `artdam upload`
158
+
159
+ 上传文件到指定项目和文件夹。
160
+
161
+ ```bash
162
+ artdam upload ./image.jpg # 使用默认项目
163
+ artdam upload ./image.jpg --folder 10
164
+ artdam upload ./image.jpg --project 1 # 临时指定项目
165
+ ```
166
+
167
+ #### `artdam update`
168
+
169
+ 更新资产信息(可同时传多个选项)。
170
+
171
+ ```bash
172
+ artdam update 123 --name "新文件名"
173
+ artdam update 123 --description "新描述"
174
+ artdam update 123 --folder 10
175
+ ```
176
+
177
+ #### `artdam delete`
178
+
179
+ 软删除资产(可通过 `restore` 恢复)。
180
+
181
+ ```bash
182
+ artdam delete 123
183
+ ```
184
+
185
+ #### `artdam restore`
186
+
187
+ 恢复已删除的资产。
188
+
189
+ ```bash
190
+ artdam restore 123
191
+ ```
192
+
193
+ ### 标签管理(member 及以上)
194
+
195
+ ```bash
196
+ # 给资产添加标签
197
+ artdam tag add 123 5
198
+
199
+ # 从资产移除标签
200
+ artdam tag remove 123 5
201
+
202
+ # 创建新标签(省略 -p 则使用默认项目)
203
+ artdam tag create "标签名"
204
+ artdam tag create "标签名" --project 1
205
+ ```
206
+
207
+ ### 文件夹管理(member 及以上)
208
+
209
+ ```bash
210
+ # 创建文件夹(省略 -p 则使用默认项目)
211
+ artdam folder create "文件夹名"
212
+ artdam folder create "子文件夹" --parent 10
213
+
214
+ # 删除文件夹
215
+ artdam folder delete 10
216
+ ```
217
+
218
+ ### 互动操作(member 及以上)
219
+
220
+ ```bash
221
+ # 评论
222
+ artdam comment 123 "评论内容"
223
+
224
+ # 评分(1-5 星)
225
+ artdam rate 123 4
226
+
227
+ # 收藏 / 取消收藏
228
+ artdam favorite 123
229
+ artdam favorite 123 --remove
230
+ ```
231
+
232
+ ## AI Agent 使用指南
233
+
234
+ 所有查询命令支持 `--json` 输出原始 JSON,适合 Agent 解析:
235
+
236
+ ```bash
237
+ artdam projects --json
238
+ artdam search "安妮" --json
239
+ artdam get 123 --json
240
+ artdam tags --json
241
+ artdam folders --json
242
+ ```
243
+
244
+ ### 典型 Agent 工作流
245
+
246
+ ```bash
247
+ # 1. 登录(SSO 浏览器授权,完成后自动保存 token)
248
+ artdam login
249
+
250
+ # 2. 查询项目列表,选择目标项目并设为默认
251
+ artdam projects --json
252
+ artdam project use 1
253
+
254
+ # 3. 搜索 → 确认 → 下载
255
+ artdam search "头盔" --json
256
+ artdam get 50707 --json
257
+ artdam download 50707 --out ./assets
258
+
259
+ # 4. 搜索 → 批量打标签
260
+ artdam search "安妮" --json
261
+ artdam tag add 50707 5
262
+ artdam tag add 50708 5
263
+
264
+ # 5. 上传并更新描述
265
+ artdam upload ./new_asset.jpg --folder 10
266
+ artdam update <asset_id> --description "AI 生成的场景描述"
267
+ ```
268
+
269
+ ## 注意事项
270
+
271
+ - 首次使用先运行 `artdam projects` 获取项目 ID,再 `artdam project use <id>` 设置默认项目
272
+ - 设置默认项目后,`search` / `tags` / `folders` / `upload` 等命令无需再传 `-p`
273
+ - `-p` 仍可临时覆盖默认项目
274
+ - `--json` 返回原始 JSON,适合程序解析
275
+ - token 保存在 `~/.artdam/config.json`,登录一次长期有效
276
+ - `artdam delete` 是软删除,可用 `artdam restore` 恢复
277
+ - Windows CMD 下中文乱码时,在命令前加 `PYTHONUTF8=1`
278
+
279
+ ## 配置文件
280
+
281
+ 登录信息保存在 `~/.artdam/config.json`:
282
+
283
+ ```json
284
+ {
285
+ "base_url": "https://artdam.xindong.com",
286
+ "token": "eyJ...",
287
+ "default_project": 1
288
+ }
289
+ ```
@@ -0,0 +1,279 @@
1
+ # artdam-cli
2
+
3
+ ArtDAM 数字资产管理平台命令行工具,支持所有主流 AI Agent工具接入
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ # 推荐(无需 Python 环境)
9
+ uv tool install artdam-cli
10
+
11
+ # 或使用 pip
12
+ pip install artdam-cli
13
+ ```
14
+
15
+ ## 快速开始
16
+
17
+ ```bash
18
+ # 登录(默认走 SSO,自动打开浏览器完成授权)
19
+ artdam login
20
+
21
+ # 用账号密码登录
22
+ artdam login --password --username <用户名>
23
+
24
+ # 查看可访问的项目列表(获取项目 ID)
25
+ artdam projects
26
+
27
+ # 设置默认项目(之后无需每次输入 -p)
28
+ artdam project use 1
29
+
30
+ # 搜索资产
31
+ artdam search "关键词"
32
+
33
+ # 查看资产详情
34
+ artdam get 123
35
+
36
+ # 下载资产
37
+ artdam download 123 --out ./downloads
38
+ ```
39
+
40
+ ## 命令说明
41
+
42
+ ### 查询命令(viewer 及以上)
43
+
44
+ #### `artdam projects`
45
+
46
+ 列出当前用户可访问的所有项目(含 ID)。
47
+
48
+ ```bash
49
+ artdam projects
50
+ artdam projects --json # 输出原始 JSON(AI Agent 用)
51
+ ```
52
+
53
+ #### `artdam project use / show`
54
+
55
+ 设置或查看默认项目,设置后所有命令无需再传 `-p`。
56
+
57
+ ```bash
58
+ artdam project use 1 # 设置默认项目 ID 为 1
59
+ artdam project show # 查看当前默认项目
60
+ ```
61
+
62
+ #### `artdam login`
63
+
64
+ 登录 ArtDAM,保存 token 到本地 `~/.artdam/config.json`。
65
+
66
+ **默认走 SSO 浏览器授权**(推荐):
67
+
68
+ ```bash
69
+ artdam login
70
+ # 自动打开浏览器 → 完成公司 SSO 授权 → token 写入本地配置
71
+ ```
72
+
73
+ **账号密码登录**(仅管理员 / 服务账号):
74
+
75
+ ```bash
76
+ artdam login --password --username <用户名>
77
+ # 回车后提示输入密码(不回显)
78
+ ```
79
+
80
+ | 参数 | 说明 |
81
+ |---|---|
82
+ | `--url` | 服务器地址(默认已内置,无需填写) |
83
+ | `--password` | 切换为账号密码模式(不加此 flag 默认走 SSO) |
84
+ | `--username` | 用户名(仅 `--password` 模式) |
85
+
86
+ #### `artdam search`
87
+
88
+ 搜索资产,返回匹配列表。
89
+
90
+ ```bash
91
+ artdam search "场景" # 使用默认项目
92
+ artdam search "场景" --project 1 # 临时指定项目
93
+ artdam search "场景" --limit 50
94
+ artdam search "场景" --type image/png
95
+ artdam search "场景" --folder 10
96
+ artdam search "场景" --json # 输出原始 JSON(AI Agent 用)
97
+ ```
98
+
99
+ | 参数 | 说明 |
100
+ |---|---|
101
+ | `KEYWORD` | 搜索关键词 |
102
+ | `-p, --project` | 项目 ID(省略则使用默认项目) |
103
+ | `-n, --limit` | 返回数量上限(默认 20) |
104
+ | `--type` | 文件类型,如 `image/png` |
105
+ | `--folder` | 限定文件夹 ID |
106
+ | `--json` | 输出原始 JSON |
107
+
108
+ #### `artdam get`
109
+
110
+ 查看单个资产详情(含预览链接)。
111
+
112
+ ```bash
113
+ artdam get 123
114
+ artdam get 123 --json # 输出原始 JSON(AI Agent 用)
115
+ ```
116
+
117
+ #### `artdam download`
118
+
119
+ 下载资产文件到本地。
120
+
121
+ ```bash
122
+ artdam download 123
123
+ artdam download 123 --out ./downloads
124
+ ```
125
+
126
+ #### `artdam tags`
127
+
128
+ 列出项目标签。
129
+
130
+ ```bash
131
+ artdam tags # 使用默认项目
132
+ artdam tags --search "角色"
133
+ artdam tags --json
134
+ ```
135
+
136
+ #### `artdam folders`
137
+
138
+ 查看文件夹结构。
139
+
140
+ ```bash
141
+ artdam folders # 使用默认项目
142
+ artdam folders --json
143
+ ```
144
+
145
+ ### 资产管理(member 及以上)
146
+
147
+ #### `artdam upload`
148
+
149
+ 上传文件到指定项目和文件夹。
150
+
151
+ ```bash
152
+ artdam upload ./image.jpg # 使用默认项目
153
+ artdam upload ./image.jpg --folder 10
154
+ artdam upload ./image.jpg --project 1 # 临时指定项目
155
+ ```
156
+
157
+ #### `artdam update`
158
+
159
+ 更新资产信息(可同时传多个选项)。
160
+
161
+ ```bash
162
+ artdam update 123 --name "新文件名"
163
+ artdam update 123 --description "新描述"
164
+ artdam update 123 --folder 10
165
+ ```
166
+
167
+ #### `artdam delete`
168
+
169
+ 软删除资产(可通过 `restore` 恢复)。
170
+
171
+ ```bash
172
+ artdam delete 123
173
+ ```
174
+
175
+ #### `artdam restore`
176
+
177
+ 恢复已删除的资产。
178
+
179
+ ```bash
180
+ artdam restore 123
181
+ ```
182
+
183
+ ### 标签管理(member 及以上)
184
+
185
+ ```bash
186
+ # 给资产添加标签
187
+ artdam tag add 123 5
188
+
189
+ # 从资产移除标签
190
+ artdam tag remove 123 5
191
+
192
+ # 创建新标签(省略 -p 则使用默认项目)
193
+ artdam tag create "标签名"
194
+ artdam tag create "标签名" --project 1
195
+ ```
196
+
197
+ ### 文件夹管理(member 及以上)
198
+
199
+ ```bash
200
+ # 创建文件夹(省略 -p 则使用默认项目)
201
+ artdam folder create "文件夹名"
202
+ artdam folder create "子文件夹" --parent 10
203
+
204
+ # 删除文件夹
205
+ artdam folder delete 10
206
+ ```
207
+
208
+ ### 互动操作(member 及以上)
209
+
210
+ ```bash
211
+ # 评论
212
+ artdam comment 123 "评论内容"
213
+
214
+ # 评分(1-5 星)
215
+ artdam rate 123 4
216
+
217
+ # 收藏 / 取消收藏
218
+ artdam favorite 123
219
+ artdam favorite 123 --remove
220
+ ```
221
+
222
+ ## AI Agent 使用指南
223
+
224
+ 所有查询命令支持 `--json` 输出原始 JSON,适合 Agent 解析:
225
+
226
+ ```bash
227
+ artdam projects --json
228
+ artdam search "安妮" --json
229
+ artdam get 123 --json
230
+ artdam tags --json
231
+ artdam folders --json
232
+ ```
233
+
234
+ ### 典型 Agent 工作流
235
+
236
+ ```bash
237
+ # 1. 登录(SSO 浏览器授权,完成后自动保存 token)
238
+ artdam login
239
+
240
+ # 2. 查询项目列表,选择目标项目并设为默认
241
+ artdam projects --json
242
+ artdam project use 1
243
+
244
+ # 3. 搜索 → 确认 → 下载
245
+ artdam search "头盔" --json
246
+ artdam get 50707 --json
247
+ artdam download 50707 --out ./assets
248
+
249
+ # 4. 搜索 → 批量打标签
250
+ artdam search "安妮" --json
251
+ artdam tag add 50707 5
252
+ artdam tag add 50708 5
253
+
254
+ # 5. 上传并更新描述
255
+ artdam upload ./new_asset.jpg --folder 10
256
+ artdam update <asset_id> --description "AI 生成的场景描述"
257
+ ```
258
+
259
+ ## 注意事项
260
+
261
+ - 首次使用先运行 `artdam projects` 获取项目 ID,再 `artdam project use <id>` 设置默认项目
262
+ - 设置默认项目后,`search` / `tags` / `folders` / `upload` 等命令无需再传 `-p`
263
+ - `-p` 仍可临时覆盖默认项目
264
+ - `--json` 返回原始 JSON,适合程序解析
265
+ - token 保存在 `~/.artdam/config.json`,登录一次长期有效
266
+ - `artdam delete` 是软删除,可用 `artdam restore` 恢复
267
+ - Windows CMD 下中文乱码时,在命令前加 `PYTHONUTF8=1`
268
+
269
+ ## 配置文件
270
+
271
+ 登录信息保存在 `~/.artdam/config.json`:
272
+
273
+ ```json
274
+ {
275
+ "base_url": "https://artdam.xindong.com",
276
+ "token": "eyJ...",
277
+ "default_project": 1
278
+ }
279
+ ```
@@ -0,0 +1 @@
1
+ __version__ = "0.2.1"
@@ -1,6 +1,6 @@
1
1
  import click
2
2
 
3
- from artdam_cli import client
3
+ from artdam_cli import client, config
4
4
 
5
5
 
6
6
  @click.group(name="folder")
@@ -10,10 +10,11 @@ def folder_group() -> None:
10
10
 
11
11
  @folder_group.command(name="create")
12
12
  @click.argument("name")
13
- @click.option("--project", "-p", type=int, required=True, help="项目 ID")
13
+ @click.option("--project", "-p", type=int, default=None, help="项目 ID(省略则使用默认项目)")
14
14
  @click.option("--parent", type=int, default=None, help="父文件夹 ID(不填则创建在根目录)")
15
- def folder_create(name: str, project: int, parent: int | None) -> None:
15
+ def folder_create(name: str, project: int | None, parent: int | None) -> None:
16
16
  """创建文件夹。"""
17
+ project = config.require_project(project)
17
18
  body: dict = {"name": name, "project_id": project}
18
19
  if parent is not None:
19
20
  body["parent_id"] = parent
@@ -4,7 +4,7 @@ import click
4
4
  from rich.console import Console
5
5
  from rich.tree import Tree
6
6
 
7
- from artdam_cli import client
7
+ from artdam_cli import client, config
8
8
 
9
9
  console = Console()
10
10
 
@@ -17,10 +17,11 @@ def _build_tree(node: Tree, items: list[dict], parent_id: int | None) -> None:
17
17
 
18
18
 
19
19
  @click.command()
20
- @click.option("--project", "-p", required=True, type=int, help="项目 ID")
20
+ @click.option("--project", "-p", default=None, type=int, help="项目 ID(省略则使用默认项目)")
21
21
  @click.option("--json", "as_json", is_flag=True, help="输出原始 JSON")
22
- def folders(project: int, as_json: bool) -> None:
22
+ def folders(project: int | None, as_json: bool) -> None:
23
23
  """查看文件夹结构。"""
24
+ project = config.require_project(project)
24
25
  data = client.get("/api/collections/", params={"project_id": project})
25
26
  items = data if isinstance(data, list) else data.get("items", [])
26
27