agent-resource-management 1.3.0 → 1.4.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 +93 -50
- package/data/skills/arm-tool/SKILL.md +102 -0
- package/data/skills/arm-tool.zip +0 -0
- package/dist/main.js +1 -1
- package/package.json +1 -1
- package/src/lib/storage.ts +1 -1
- package/test-regression.sh +50 -50
package/README.md
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
# Agent
|
|
1
|
+
# Agent Resource Management (ARM) - CLI
|
|
2
2
|
|
|
3
|
-
Agent
|
|
3
|
+
Agent Resource Management CLI 是一个用于管理 Skills、Knowledges 和 Agents 的命令行工具,支持浏览、搜索、上传、下载、验证等功能。
|
|
4
4
|
|
|
5
|
-
**注意**: 本 CLI 需要配合
|
|
5
|
+
**注意**: 本 CLI 需要配合 ARM Backend 后端管理系统一起使用。请先确保后端服务已启动。
|
|
6
6
|
|
|
7
7
|
## 功能特性
|
|
8
8
|
|
|
9
9
|
- 认证管理 (登录/登出)
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
10
|
+
- Skill 浏览与搜索
|
|
11
|
+
- Knowledge 浏览与搜索
|
|
12
|
+
- Agent 浏览与搜索
|
|
13
|
+
- 上传/下载/删除
|
|
14
|
+
- 本地验证
|
|
14
15
|
- 多服务端支持
|
|
15
16
|
|
|
16
17
|
## 安装
|
|
@@ -28,7 +29,7 @@ npm run build
|
|
|
28
29
|
npm link
|
|
29
30
|
|
|
30
31
|
# 验证安装
|
|
31
|
-
|
|
32
|
+
arm --help
|
|
32
33
|
```
|
|
33
34
|
|
|
34
35
|
### 或使用 Bun 直接运行
|
|
@@ -43,47 +44,73 @@ bun run src/main.ts --help
|
|
|
43
44
|
### 1. 登录
|
|
44
45
|
|
|
45
46
|
```bash
|
|
46
|
-
|
|
47
|
+
arm login http://localhost:3000 <your-api-key>
|
|
47
48
|
```
|
|
48
49
|
|
|
49
|
-
### 2.
|
|
50
|
+
### 2. 浏览 Skills
|
|
50
51
|
|
|
51
52
|
```bash
|
|
52
|
-
#
|
|
53
|
-
|
|
53
|
+
# 列出所有 Skills
|
|
54
|
+
arm skill ls
|
|
54
55
|
|
|
55
|
-
#
|
|
56
|
-
|
|
56
|
+
# 搜索 Skills
|
|
57
|
+
arm skill search pdf
|
|
57
58
|
|
|
58
|
-
#
|
|
59
|
-
|
|
59
|
+
# 查看 Skill 详情
|
|
60
|
+
arm skill info pdf-tool
|
|
60
61
|
```
|
|
61
62
|
|
|
62
|
-
### 3.
|
|
63
|
+
### 3. 浏览 Knowledges
|
|
63
64
|
|
|
64
65
|
```bash
|
|
65
|
-
#
|
|
66
|
-
|
|
66
|
+
# 列出所有 Knowledges
|
|
67
|
+
arm knowledge ls
|
|
67
68
|
|
|
68
|
-
#
|
|
69
|
-
|
|
69
|
+
# 搜索 Knowledges
|
|
70
|
+
arm knowledge search api-doc
|
|
70
71
|
```
|
|
71
72
|
|
|
72
|
-
### 4.
|
|
73
|
+
### 4. 浏览 Agents
|
|
73
74
|
|
|
74
75
|
```bash
|
|
75
|
-
#
|
|
76
|
-
|
|
76
|
+
# 列出所有 Agents
|
|
77
|
+
arm agent ls
|
|
78
|
+
|
|
79
|
+
# 搜索 Agents
|
|
80
|
+
arm agent search assistant
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 5. 下载
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# 下载 Skill 到当前目录
|
|
87
|
+
arm skill download pdf-tool
|
|
88
|
+
|
|
89
|
+
# 下载 Knowledge 到指定目录
|
|
90
|
+
arm knowledge download api-doc ./my-knowledges
|
|
91
|
+
|
|
92
|
+
# 下载 Agent 到指定目录
|
|
93
|
+
arm agent download workspace-assistant ./agents
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 6. 上传
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# 上传本地 Skill 目录
|
|
100
|
+
arm skill upload ./my-skills/pdf-tool
|
|
101
|
+
|
|
102
|
+
# 上传本地 Knowledge 目录
|
|
103
|
+
arm knowledge upload ./my-knowledges/api-doc
|
|
77
104
|
```
|
|
78
105
|
|
|
79
|
-
###
|
|
106
|
+
### 7. 验证格式
|
|
80
107
|
|
|
81
108
|
```bash
|
|
82
|
-
#
|
|
83
|
-
|
|
109
|
+
# 验证 Skill 目录
|
|
110
|
+
arm skill validate ./my-skills/pdf-tool
|
|
84
111
|
|
|
85
|
-
# 验证 ZIP 文件
|
|
86
|
-
|
|
112
|
+
# 验证 Skill ZIP 文件
|
|
113
|
+
arm skill validate ./my-skills/pdf-tool.zip
|
|
87
114
|
```
|
|
88
115
|
|
|
89
116
|
## 命令参考
|
|
@@ -92,38 +119,54 @@ adk skill validate ./my-skills/pdf-tool.zip
|
|
|
92
119
|
|
|
93
120
|
| 命令 | 说明 |
|
|
94
121
|
|------|------|
|
|
95
|
-
| `
|
|
96
|
-
| `
|
|
97
|
-
| `
|
|
122
|
+
| `arm login <server-url> <api-key>` | 登录到指定服务端 |
|
|
123
|
+
| `arm logout` | 登出当前用户 |
|
|
124
|
+
| `arm me` | 显示当前用户信息 |
|
|
125
|
+
|
|
126
|
+
### Skill 命令
|
|
127
|
+
|
|
128
|
+
| 命令 | 说明 |
|
|
129
|
+
|------|------|
|
|
130
|
+
| `arm skill ls` | 列出所有公开 Skills |
|
|
131
|
+
| `arm skill search <keyword>` | 搜索 Skills |
|
|
132
|
+
| `arm skill info <name>` | 查看 Skill 详情 |
|
|
133
|
+
| `arm skill download <name> [dir]` | 下载 Skill 到指定目录 |
|
|
134
|
+
| `arm skill upload <path>` | 上传本地 Skill 目录 |
|
|
135
|
+
| `arm skill my` | 查看我发布的 Skills |
|
|
136
|
+
| `arm skill delete <name>` | 删除我发布的 Skill |
|
|
137
|
+
| `arm skill validate <path>` | 验证 Skill 格式(支持目录和 ZIP) |
|
|
98
138
|
|
|
99
|
-
###
|
|
139
|
+
### Knowledge 命令
|
|
100
140
|
|
|
101
141
|
| 命令 | 说明 |
|
|
102
142
|
|------|------|
|
|
103
|
-
| `
|
|
104
|
-
| `
|
|
105
|
-
| `
|
|
143
|
+
| `arm knowledge ls` | 列出所有公开 Knowledges |
|
|
144
|
+
| `arm knowledge search <keyword>` | 搜索 Knowledges |
|
|
145
|
+
| `arm knowledge info <name>` | 查看 Knowledge 详情 |
|
|
146
|
+
| `arm knowledge download <name> [dir]` | 下载 Knowledge 到指定目录 |
|
|
147
|
+
| `arm knowledge upload <path>` | 上传本地 Knowledge 目录 |
|
|
148
|
+
| `arm knowledge my` | 查看我发布的 Knowledges |
|
|
149
|
+
| `arm knowledge delete <name>` | 删除我发布的 Knowledge |
|
|
106
150
|
|
|
107
|
-
###
|
|
151
|
+
### Agent 命令
|
|
108
152
|
|
|
109
153
|
| 命令 | 说明 |
|
|
110
154
|
|------|------|
|
|
111
|
-
| `
|
|
112
|
-
| `
|
|
113
|
-
| `
|
|
114
|
-
| `
|
|
115
|
-
| `adk skill validate <path>` | 验证技能格式(支持目录和 ZIP) |
|
|
155
|
+
| `arm agent ls` | 列出所有公开 Agents |
|
|
156
|
+
| `arm agent search <keyword>` | 搜索 Agents |
|
|
157
|
+
| `arm agent info <name>` | 查看 Agent 详情 |
|
|
158
|
+
| `arm agent download <name> [dir]` | 下载 Agent 到指定目录 |
|
|
116
159
|
|
|
117
160
|
### 服务端命令
|
|
118
161
|
|
|
119
162
|
| 命令 | 说明 |
|
|
120
163
|
|------|------|
|
|
121
|
-
| `
|
|
122
|
-
| `
|
|
164
|
+
| `arm server` | 显示当前服务端 |
|
|
165
|
+
| `arm server set <url>` | 设置默认服务端 |
|
|
123
166
|
|
|
124
|
-
##
|
|
167
|
+
## Skill 格式规范
|
|
125
168
|
|
|
126
|
-
|
|
169
|
+
上传的 Skill 目录必须包含 `SKILL.md` 文件,且 frontmatter 必须符合以下格式:
|
|
127
170
|
|
|
128
171
|
```yaml
|
|
129
172
|
---
|
|
@@ -134,9 +177,9 @@ compatibility: 兼容性信息 # 可选
|
|
|
134
177
|
allowed-tools: tool1 tool2 # 可选,空格分隔
|
|
135
178
|
---
|
|
136
179
|
|
|
137
|
-
#
|
|
180
|
+
# Skill 说明
|
|
138
181
|
|
|
139
|
-
|
|
182
|
+
这里是 Skill 的详细说明文档...
|
|
140
183
|
```
|
|
141
184
|
|
|
142
185
|
### 验证规则
|
|
@@ -149,7 +192,7 @@ allowed-tools: tool1 tool2 # 可选,空格分隔
|
|
|
149
192
|
|
|
150
193
|
## 配置文件
|
|
151
194
|
|
|
152
|
-
登录后配置保存在 `~/.
|
|
195
|
+
登录后配置保存在 `~/.arm/config.json`:
|
|
153
196
|
|
|
154
197
|
```json
|
|
155
198
|
{
|
|
@@ -181,7 +224,7 @@ npm run build
|
|
|
181
224
|
|
|
182
225
|
## 后端配合
|
|
183
226
|
|
|
184
|
-
本 CLI 需要配合
|
|
227
|
+
本 CLI 需要配合 ARM Backend 使用。启动后端服务:
|
|
185
228
|
|
|
186
229
|
```bash
|
|
187
230
|
cd backend
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arm-tool
|
|
3
|
+
description: Agent Resource Management CLI - Manage Skills, Knowledges, and Agents across the platform. Upload, search, download, and share reusable capabilities.
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Works with any ARM backend API v1
|
|
6
|
+
allowed-tools: arm-cli
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ARM Tool
|
|
10
|
+
|
|
11
|
+
Agent Resource Management (arm) CLI for managing Skills, Knowledges, and Agents.
|
|
12
|
+
|
|
13
|
+
## Commands
|
|
14
|
+
|
|
15
|
+
### Authentication
|
|
16
|
+
|
|
17
|
+
- `arm login <server-url> <api-key>` - Login to the platform
|
|
18
|
+
- `arm logout` - Logout from the platform
|
|
19
|
+
- `arm me` - Show current user info
|
|
20
|
+
|
|
21
|
+
### Skill Management
|
|
22
|
+
|
|
23
|
+
- `arm skill ls` - List all available Skills
|
|
24
|
+
- `arm skill search <keyword>` - Search Skills by keyword
|
|
25
|
+
- `arm skill info <name>` - Show detailed info of a Skill
|
|
26
|
+
- `arm skill download <name> [dir]` - Download a Skill as zip
|
|
27
|
+
- `arm skill upload <path>` - Upload a Skill (dir or zip)
|
|
28
|
+
- `arm skill my` - List Skills you've published
|
|
29
|
+
- `arm skill delete <name>` - Delete your published Skill
|
|
30
|
+
- `arm skill validate <path>` - Validate a Skill package
|
|
31
|
+
|
|
32
|
+
### Knowledge Management
|
|
33
|
+
|
|
34
|
+
- `arm knowledge ls` - List all available Knowledges
|
|
35
|
+
- `arm knowledge search <keyword>` - Search Knowledges by keyword
|
|
36
|
+
- `arm knowledge info <name>` - Show detailed info of a Knowledge
|
|
37
|
+
- `arm knowledge download <name> [dir]` - Download a Knowledge as zip
|
|
38
|
+
- `arm knowledge upload <path>` - Upload a Knowledge (dir or zip)
|
|
39
|
+
- `arm knowledge my` - List Knowledges you've published
|
|
40
|
+
- `arm knowledge delete <name>` - Delete your published Knowledge
|
|
41
|
+
|
|
42
|
+
### Agent Management
|
|
43
|
+
|
|
44
|
+
- `arm agent ls` - List all available Agents
|
|
45
|
+
- `arm agent search <keyword>` - Search Agents by keyword
|
|
46
|
+
- `arm agent info <name>` - Show detailed info of an Agent
|
|
47
|
+
- `arm agent download <name> [dir]` - Download an Agent to local directory
|
|
48
|
+
|
|
49
|
+
### Server Configuration
|
|
50
|
+
|
|
51
|
+
- `arm server` - Show current server URL
|
|
52
|
+
- `arm server set <url>` - Set server URL
|
|
53
|
+
|
|
54
|
+
## Usage Examples
|
|
55
|
+
|
|
56
|
+
### Login and Explore
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Login to the platform
|
|
60
|
+
arm login https://api.example.com <your-api-key>
|
|
61
|
+
|
|
62
|
+
# List all available Skills
|
|
63
|
+
arm skill ls
|
|
64
|
+
|
|
65
|
+
# Search for a specific Skill
|
|
66
|
+
arm skill search pdf
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Download and Use
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Download a Skill to local
|
|
73
|
+
arm skill download pdf-tool ./my-skills
|
|
74
|
+
|
|
75
|
+
# Download an Agent
|
|
76
|
+
arm agent download workspace-assistant ./agents
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Publish Your Work
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Validate before uploading
|
|
83
|
+
arm skill validate ./my-custom-skill
|
|
84
|
+
|
|
85
|
+
# Upload your Skill
|
|
86
|
+
arm skill upload ./my-custom-skill
|
|
87
|
+
|
|
88
|
+
# Check your published items
|
|
89
|
+
arm skill my
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Concepts
|
|
93
|
+
|
|
94
|
+
- **Skill**: A reusable capability package with tools and instructions
|
|
95
|
+
- **Knowledge**: Document/data packages for RAG retrieval
|
|
96
|
+
- **Agent**: Configured agent combining Skills, Knowledges, and prompts
|
|
97
|
+
|
|
98
|
+
## Notes
|
|
99
|
+
|
|
100
|
+
- All commands requiring authentication need prior login
|
|
101
|
+
- Server URL is persisted locally after `arm server set`
|
|
102
|
+
- Skills must contain a valid SKILL.md file to upload
|
|
Binary file
|
package/dist/main.js
CHANGED
|
@@ -235,7 +235,7 @@ class ApiClient {
|
|
|
235
235
|
// src/lib/storage.ts
|
|
236
236
|
import { writeFileSync, readFileSync, existsSync, mkdirSync } from "fs";
|
|
237
237
|
import { join } from "path";
|
|
238
|
-
var CONFIG_DIR = join(process.env.HOME || "/root", ".
|
|
238
|
+
var CONFIG_DIR = join(process.env.HOME || "/root", ".arm");
|
|
239
239
|
var CONFIG_FILE = join(CONFIG_DIR, "config.json");
|
|
240
240
|
function ensureConfigDir() {
|
|
241
241
|
if (!existsSync(CONFIG_DIR)) {
|
package/package.json
CHANGED
package/src/lib/storage.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { writeFileSync, readFileSync, existsSync, mkdirSync } from 'fs';
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
|
|
4
|
-
const CONFIG_DIR = join(process.env.HOME || '/root', '.
|
|
4
|
+
const CONFIG_DIR = join(process.env.HOME || '/root', '.arm');
|
|
5
5
|
const CONFIG_FILE = join(CONFIG_DIR, 'config.json');
|
|
6
6
|
|
|
7
7
|
interface Config {
|
package/test-regression.sh
CHANGED
|
@@ -4,7 +4,7 @@ CLI_DIR="/Users/lk/Documents/Dev/aims/xuanwu/xuanwu-agents/agent-sdk/agent-skill
|
|
|
4
4
|
DATA_DIR="$CLI_DIR/data/skills"
|
|
5
5
|
SERVER_URL="http://localhost:3000"
|
|
6
6
|
API_KEY="4567c9e607564e91b3898c46d89cb68dc4e40ec4a52b456699b695cf800fd446"
|
|
7
|
-
|
|
7
|
+
ARM="/Users/lk/.bun/bin/bun run $CLI_DIR/src/main.ts"
|
|
8
8
|
|
|
9
9
|
RED='\033[0;31m'
|
|
10
10
|
GREEN='\033[0;32m'
|
|
@@ -34,7 +34,7 @@ cleanup() {
|
|
|
34
34
|
log "Cleaning up..."
|
|
35
35
|
rm -rf "$DATA_DIR/pdf-tool-downloaded"
|
|
36
36
|
rm -f "$DATA_DIR/test-skill.zip"
|
|
37
|
-
$
|
|
37
|
+
$ARM logout 2>/dev/null || true
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
check_output() {
|
|
@@ -65,8 +65,8 @@ log "========== Regression Test Suite =========="
|
|
|
65
65
|
cleanup
|
|
66
66
|
|
|
67
67
|
echo ""
|
|
68
|
-
log "=== TC-CLI-001:
|
|
69
|
-
output=$($
|
|
68
|
+
log "=== TC-CLI-001: arm login 成功登录 ==="
|
|
69
|
+
output=$($ARM login $SERVER_URL $API_KEY 2>&1)
|
|
70
70
|
if echo "$output" | grep -q "登录成功"; then
|
|
71
71
|
pass "TC-CLI-001: Login successful"
|
|
72
72
|
else
|
|
@@ -75,13 +75,13 @@ fi
|
|
|
75
75
|
|
|
76
76
|
echo ""
|
|
77
77
|
log "=== Setup: Upload test skills ==="
|
|
78
|
-
$
|
|
79
|
-
$
|
|
78
|
+
$ARM skill upload $DATA_DIR/pdf-tool > /dev/null 2>&1
|
|
79
|
+
$ARM skill upload $DATA_DIR/github-tool > /dev/null 2>&1
|
|
80
80
|
|
|
81
81
|
echo ""
|
|
82
|
-
log "=== TC-CLI-002:
|
|
83
|
-
$
|
|
84
|
-
output=$($
|
|
82
|
+
log "=== TC-CLI-002: arm login 失败 (无效 API Key) ==="
|
|
83
|
+
$ARM logout > /dev/null 2>&1
|
|
84
|
+
output=$($ARM login $SERVER_URL invalid-api-key 2>&1)
|
|
85
85
|
if echo "$output" | grep -q "登录失败"; then
|
|
86
86
|
pass "TC-CLI-002: Login with invalid key fails"
|
|
87
87
|
else
|
|
@@ -89,8 +89,8 @@ else
|
|
|
89
89
|
fi
|
|
90
90
|
|
|
91
91
|
echo ""
|
|
92
|
-
log "=== TC-CLI-003:
|
|
93
|
-
output=$($
|
|
92
|
+
log "=== TC-CLI-003: arm login 失败 (无效 Server URL) ==="
|
|
93
|
+
output=$($ARM login http://invalid:9999 $API_KEY 2>&1)
|
|
94
94
|
if echo "$output" | grep -q "登录失败"; then
|
|
95
95
|
pass "TC-CLI-003: Login with invalid server fails"
|
|
96
96
|
else
|
|
@@ -98,9 +98,9 @@ else
|
|
|
98
98
|
fi
|
|
99
99
|
|
|
100
100
|
echo ""
|
|
101
|
-
log "=== TC-CLI-004:
|
|
102
|
-
$
|
|
103
|
-
output=$($
|
|
101
|
+
log "=== TC-CLI-004: arm logout 登出 ==="
|
|
102
|
+
$ARM login $SERVER_URL $API_KEY > /dev/null 2>&1
|
|
103
|
+
output=$($ARM logout 2>&1)
|
|
104
104
|
if echo "$output" | grep -q "已退出登录"; then
|
|
105
105
|
pass "TC-CLI-004: Logout successful"
|
|
106
106
|
else
|
|
@@ -108,9 +108,9 @@ else
|
|
|
108
108
|
fi
|
|
109
109
|
|
|
110
110
|
echo ""
|
|
111
|
-
log "=== TC-CLI-005:
|
|
112
|
-
$
|
|
113
|
-
output=$($
|
|
111
|
+
log "=== TC-CLI-005: arm logout 未登录时 ==="
|
|
112
|
+
$ARM logout > /dev/null 2>&1
|
|
113
|
+
output=$($ARM logout 2>&1)
|
|
114
114
|
if echo "$output" | grep -q "未登录"; then
|
|
115
115
|
pass "TC-CLI-005: Logout when not logged in"
|
|
116
116
|
else
|
|
@@ -118,9 +118,9 @@ else
|
|
|
118
118
|
fi
|
|
119
119
|
|
|
120
120
|
echo ""
|
|
121
|
-
log "=== TC-CLI-006:
|
|
122
|
-
$
|
|
123
|
-
output=$($
|
|
121
|
+
log "=== TC-CLI-006: arm skill ls 列出所有 Skills ==="
|
|
122
|
+
$ARM login $SERVER_URL $API_KEY > /dev/null 2>&1
|
|
123
|
+
output=$($ARM skill ls 2>&1)
|
|
124
124
|
if echo "$output" | grep -qE "(Skill|暂无)"; then
|
|
125
125
|
pass "TC-CLI-006: List skills successful"
|
|
126
126
|
else
|
|
@@ -128,9 +128,9 @@ else
|
|
|
128
128
|
fi
|
|
129
129
|
|
|
130
130
|
echo ""
|
|
131
|
-
log "=== TC-CLI-007:
|
|
132
|
-
$
|
|
133
|
-
output=$($
|
|
131
|
+
log "=== TC-CLI-007: arm skill ls 未登录时 ==="
|
|
132
|
+
$ARM logout > /dev/null 2>&1
|
|
133
|
+
output=$($ARM skill ls 2>&1)
|
|
134
134
|
if echo "$output" | grep -qE "未登录|Please login"; then
|
|
135
135
|
pass "TC-CLI-007: List skills without login fails"
|
|
136
136
|
else
|
|
@@ -138,9 +138,9 @@ else
|
|
|
138
138
|
fi
|
|
139
139
|
|
|
140
140
|
echo ""
|
|
141
|
-
log "=== TC-CLI-008:
|
|
142
|
-
$
|
|
143
|
-
output=$($
|
|
141
|
+
log "=== TC-CLI-008: arm skill search 搜索 Skills ==="
|
|
142
|
+
$ARM login $SERVER_URL $API_KEY > /dev/null 2>&1
|
|
143
|
+
output=$($ARM skill search pdf 2>&1)
|
|
144
144
|
if echo "$output" | grep -qE "(找到|暂无)"; then
|
|
145
145
|
pass "TC-CLI-008: Search skills successful"
|
|
146
146
|
else
|
|
@@ -148,9 +148,9 @@ else
|
|
|
148
148
|
fi
|
|
149
149
|
|
|
150
150
|
echo ""
|
|
151
|
-
log "=== TC-CLI-009:
|
|
152
|
-
$
|
|
153
|
-
output=$($
|
|
151
|
+
log "=== TC-CLI-009: arm skill info 查看 Skill 详情 ==="
|
|
152
|
+
$ARM login $SERVER_URL $API_KEY > /dev/null 2>&1
|
|
153
|
+
output=$($ARM skill info pdf-tool 2>&1)
|
|
154
154
|
if echo "$output" | grep -qE "(pdf-tool|Name:)"; then
|
|
155
155
|
pass "TC-CLI-009: Skill info successful"
|
|
156
156
|
else
|
|
@@ -158,8 +158,8 @@ else
|
|
|
158
158
|
fi
|
|
159
159
|
|
|
160
160
|
echo ""
|
|
161
|
-
log "=== TC-CLI-010:
|
|
162
|
-
output=$($
|
|
161
|
+
log "=== TC-CLI-010: arm skill info Skill 不存在 ==="
|
|
162
|
+
output=$($ARM skill info non-existent-skill-xyz 2>&1)
|
|
163
163
|
if echo "$output" | grep -qE "(未找到|不存在|not found)"; then
|
|
164
164
|
pass "TC-CLI-010: Info for non-existent skill"
|
|
165
165
|
else
|
|
@@ -167,8 +167,8 @@ else
|
|
|
167
167
|
fi
|
|
168
168
|
|
|
169
169
|
echo ""
|
|
170
|
-
log "=== TC-CLI-014:
|
|
171
|
-
output=$($
|
|
170
|
+
log "=== TC-CLI-014: arm skill upload 上传 Skill ==="
|
|
171
|
+
output=$($ARM skill upload $DATA_DIR/pdf-tool 2>&1)
|
|
172
172
|
if echo "$output" | grep -qE "(上传成功|Published)"; then
|
|
173
173
|
pass "TC-CLI-014: Upload skill successful"
|
|
174
174
|
else
|
|
@@ -176,8 +176,8 @@ else
|
|
|
176
176
|
fi
|
|
177
177
|
|
|
178
178
|
echo ""
|
|
179
|
-
log "=== TC-CLI-015:
|
|
180
|
-
output=$($
|
|
179
|
+
log "=== TC-CLI-015: arm skill upload 目录不存在 ==="
|
|
180
|
+
output=$($ARM skill upload $DATA_DIR/non-existent-dir-xyz 2>&1)
|
|
181
181
|
if echo "$output" | grep -qE "(目录不存在|不存在)"; then
|
|
182
182
|
pass "TC-CLI-015: Upload non-existent directory"
|
|
183
183
|
else
|
|
@@ -185,8 +185,8 @@ else
|
|
|
185
185
|
fi
|
|
186
186
|
|
|
187
187
|
echo ""
|
|
188
|
-
log "=== TC-CLI-016:
|
|
189
|
-
output=$($
|
|
188
|
+
log "=== TC-CLI-016: arm skill upload SKILL.md 缺失 ==="
|
|
189
|
+
output=$($ARM skill upload $DATA_DIR/invalid-skill 2>&1)
|
|
190
190
|
if echo "$output" | grep -qE "(缺少|无效|SKILL.md)"; then
|
|
191
191
|
pass "TC-CLI-016: Upload invalid skill without SKILL.md"
|
|
192
192
|
else
|
|
@@ -194,8 +194,8 @@ else
|
|
|
194
194
|
fi
|
|
195
195
|
|
|
196
196
|
echo ""
|
|
197
|
-
log "=== TC-CLI-017:
|
|
198
|
-
output=$($
|
|
197
|
+
log "=== TC-CLI-017: arm skill my 查看我的发布 ==="
|
|
198
|
+
output=$($ARM skill my 2>&1)
|
|
199
199
|
if echo "$output" | grep -qE "(发布|Skill|暂无)"; then
|
|
200
200
|
pass "TC-CLI-017: My skills listed"
|
|
201
201
|
else
|
|
@@ -203,8 +203,8 @@ else
|
|
|
203
203
|
fi
|
|
204
204
|
|
|
205
205
|
echo ""
|
|
206
|
-
log "=== TC-CLI-020:
|
|
207
|
-
output=$($
|
|
206
|
+
log "=== TC-CLI-020: arm skill validate 验证有效 Skill ==="
|
|
207
|
+
output=$($ARM skill validate $DATA_DIR/pdf-tool 2>&1)
|
|
208
208
|
if echo "$output" | grep -qE "(通过|Valid)"; then
|
|
209
209
|
pass "TC-CLI-020: Validate valid skill"
|
|
210
210
|
else
|
|
@@ -212,8 +212,8 @@ else
|
|
|
212
212
|
fi
|
|
213
213
|
|
|
214
214
|
echo ""
|
|
215
|
-
log "=== TC-CLI-021:
|
|
216
|
-
output=$($
|
|
215
|
+
log "=== TC-CLI-021: arm skill validate 验证无效 Skill ==="
|
|
216
|
+
output=$($ARM skill validate $DATA_DIR/invalid-skill 2>&1)
|
|
217
217
|
if echo "$output" | grep -qE "(失败|Invalid|错误)"; then
|
|
218
218
|
pass "TC-CLI-021: Validate invalid skill"
|
|
219
219
|
else
|
|
@@ -221,8 +221,8 @@ else
|
|
|
221
221
|
fi
|
|
222
222
|
|
|
223
223
|
echo ""
|
|
224
|
-
log "=== TC-CLI-011:
|
|
225
|
-
output=$($
|
|
224
|
+
log "=== TC-CLI-011: arm skill download 下载 Skill ==="
|
|
225
|
+
output=$($ARM skill download pdf-tool $DATA_DIR 2>&1)
|
|
226
226
|
if echo "$output" | grep -qE "(已下载)"; then
|
|
227
227
|
if [ -f "$DATA_DIR/pdf-tool.zip" ]; then
|
|
228
228
|
pass "TC-CLI-011: Download skill successful"
|
|
@@ -234,8 +234,8 @@ else
|
|
|
234
234
|
fi
|
|
235
235
|
|
|
236
236
|
echo ""
|
|
237
|
-
log "=== TC-CLI-013:
|
|
238
|
-
output=$($
|
|
237
|
+
log "=== TC-CLI-013: arm skill download Skill 不存在 ==="
|
|
238
|
+
output=$($ARM skill download non-existent-skill-xyz 2>&1)
|
|
239
239
|
if echo "$output" | grep -qE "(未找到|不存在|not found)"; then
|
|
240
240
|
pass "TC-CLI-013: Download non-existent skill"
|
|
241
241
|
else
|
|
@@ -243,8 +243,8 @@ else
|
|
|
243
243
|
fi
|
|
244
244
|
|
|
245
245
|
echo ""
|
|
246
|
-
log "=== TC-CLI-019:
|
|
247
|
-
output=$($
|
|
246
|
+
log "=== TC-CLI-019: arm skill delete 无权限 (先上传自己的skill再删除) ==="
|
|
247
|
+
output=$($ARM skill upload $DATA_DIR/github-tool 2>&1)
|
|
248
248
|
if echo "$output" | grep -qE "(上传成功|Published)"; then
|
|
249
249
|
uploaded=true
|
|
250
250
|
else
|
|
@@ -252,7 +252,7 @@ else
|
|
|
252
252
|
fi
|
|
253
253
|
|
|
254
254
|
if [ "$uploaded" = true ]; then
|
|
255
|
-
output=$($
|
|
255
|
+
output=$($ARM skill delete github-tool 2>&1)
|
|
256
256
|
if echo "$output" | grep -qE "(已删除|删除成功|Deleted)"; then
|
|
257
257
|
pass "TC-CLI-019: Delete own skill"
|
|
258
258
|
else
|